【发布时间】:2018-12-14 16:51:07
【问题描述】:
我见过很多听起来和我一样的问题,但它们都是关于不同场景的,我还没有找到任何解决我的问题的方法。在模式对话框上单击 asp:LinkButton lnkInit 后,IsPostback 始终为 false,并且永远不会调用事件处理程序。代码如下:
<%@ Page Language="vb" AutoEventWireup="false" MasterPageFile="~/Pricebook/My.Master" CodeBehind="default.aspx.vb" Inherits="MyWebCore.Pricebook._default"
...
<div id="modal_customer" class="modal fade modal_customer" role="dialog" aria-labelledby="Select Your Customer" aria-describedby="Select a customer to generate a customizable pricelist" runat="server">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h2 class="modal-title">Select Your Customer</h2>
</div>
<div class="modal-body">
<div class="form-group">
<asp:Label ID="lblCustomer" AssociatedControlID="ddCustomer" Text="Customer Selection" runat="server"></asp:Label>
<asp:DropDownList id="ddCustomer" CssClass="form-control customer_list" runat="server" />
</div>
<asp:LinkButton ID="lnkInit" CssClass="btn btn-primary" text="Begin" runat="server"></asp:LinkButton>
</div>
</div>
</div>
</div>
代码隐藏:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
....
If Not IsPostBack Then
' ... Always gets here :(
End If
...
Sub lnkInit_Click(ByVal objSender As Object, ByVal objArgs As EventArgs) Handles lnkInit.Click
'... Never gets here
End Sub
另外一个奇怪的事实是,当我在 Visual Studio 中运行应用程序时,以及当我在 Azure VM 的 IIS 上将其作为 QA Web 应用程序运行时,当我在同样的IIS,它工作正常。我不知道如何调试它。
【问题讨论】:
-
我对网络表单的记忆模糊不清,但我没有看到您附加事件处理程序,并且您的页面指令将
AutoEventWireUp定义为 false。我认为您正在重定向而不是发布。 -
这不是“Handles lnkInit.Click”的替代品吗?
-
@DavidShochet 如果
AutoEventWireUp在我的记忆中是错误的,则不会。