ASP.NET WebForms下拉框选择变更后页面空白,SelectedIndexChanged事件不触发的排查求助
ASP.NET WebForms下拉框选择变更后页面空白,SelectedIndexChanged事件不触发的排查求助
我目前在维护一个基于VB.NET的老WebForms应用,需要给一个原本运行正常的页面新增一个下拉框控件。这个下拉框在设计器和运行时都能正常显示,但一旦切换选中项,整个页面就会变成空白的白页,而且没有任何错误提示。因为页面之前运行完全正常,我推测问题肯定出在这个新增的下拉框上。
我在后台代码里给SelectedIndexChanged事件加了断点,但事件完全没有被触发——除了事件本身的代码,我还没写任何和这个下拉框交互的其他逻辑。如果把AutoPostBack设为false的话,页面不会刷新,但SelectedIndexChanged事件也完全不会触发。
前端下拉框代码
<asp:DropDownList ID="ddlSomething" runat="server" BackColor="#fff4e3" Font-Names="Verdana" Font-Size="12px" AutoPostBack="true"> <asp:ListItem Text="unbekannt" Value="0"></asp:ListItem> <asp:ListItem Text="enthalten" Value="1"></asp:ListItem> <asp:ListItem Text="nicht enthalten" Value="2"></asp:ListItem> </asp:DropDownList>
后台VB.NET代码
Protected WithEvents ddlSomething As Global.System.Web.UI.WebControls.DropDownList Protected Sub ddlSomething_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlSomething.SelectedIndexChanged Debug.WriteLine(ddlSomething.SelectedValue) Debug.WriteLine(ddlSomething.SelectedItem) End Sub
补充尝试(Edit)
后来我还尝试了AJAX局部刷新的方案,想避免整页回发带来的问题,但结果还是一样:
调整后的前端代码
<asp:ScriptManager runat="server" ID="ScriptManager1" /> <asp:UpdatePanel runat="server" ID="UpdatePanel1" ChildrenAsTriggers="True"> <ContentTemplate> <asp:Label ID="lblsomething" runat="server" Text="some text:" Font-Names="Verdana" Font-Size="11px"></asp:Label> <asp:DropDownList ID="ddlSomething" runat="server" BackColor="#fff4e3" Font-Names="Verdana" Font-Size="12px" AutoPostBack="True" OnSelectedIndexChanged="ddlSomething_SelectedIndexChanged"> <asp:ListItem Text="unbekannt" Value="0"></asp:ListItem> <asp:ListItem Text="enthalten" Value="1"></asp:ListItem> <asp:ListItem Text="nicht enthalten" Value="2"></asp:ListItem> </asp:DropDownList> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="ddlSomething" EventName="SelectedIndexChanged" /> </Triggers> </asp:UpdatePanel>
后台事件代码(与之前一致)
Protected Sub ddlSomething_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlSomething.SelectedIndexChanged Debug.WriteLine(ddlSomething.SelectedValue) Debug.WriteLine(ddlSomething.SelectedItem) End Sub
现在完全摸不着头脑,有没有大佬能帮忙排查下问题出在哪?
内容来源于stack exchange
相关产品推荐
相关产品推荐

