【问题标题】:DropDownList SelectedIndexChanged event not firing in some machinesDropDownList SelectedIndexChanged 事件未在某些机器中触发
【发布时间】:2013-08-29 09:20:38
【问题描述】:

我们在 UpdatePanel 中有一个 DropDownList,它的 autopostback 属性设置为 true。我们在触发器中保留了一个声明,即 Postback 是异步回发,并且我们在后面的代码中有下拉列表的处理程序。

有一个特殊的问题是事件没有在某些机器上被触发。我们还包括了 InitializeRequest,并在那里检查了发生回发的 ID。它在一台机器上显示为空,而在另一台机器上也可以正常工作。

这个问题是浏览器问题还是其他问题?我们无法知道为什么会出现这种问题,因为同一段代码在某些机器上运行。

<asp:UpdatePanel runat="server" ID="UpdatePanel1" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="DropDown1" EventName="SelectedIndexChanged" /> 
</Triggers>
<ContentTemplate>
<asp:DropDownList ID=" DropDown1" runat="server" AutoPostBack="true"> </asp:DropDownList>
</ContentTemplate>
</asp:UpdatePanel> 

Private Sub DropDown1_SelectedIndexChanged(default args)Handles DropDown1.SelectedIndexChanged End Sub function InitializeRequest(sender,args){ 
if (args.get_postBackElement().id == '<%= DropDown1.ClientID %>'){ }
}

【问题讨论】:

  • ASPX Triggers> Code Private Sub DropDown1_SelectedIndexChanged(sender As Object, e As System.EventArgs) 处理 DropDown1.SelectedIndexChanged End Sub
  • 私有子 DropDown1_SelectedIndexChanged(默认参数)处理 DropDown1。 SelectedIndexChanged End Sub function InitializeRequest(sender,args){ if (args.get_postBackElement().id == ''){ }}
  • 添加这个 OnTextChanged="DropDown1_SelectedIndexChanged" AutoPostBack="true"

标签: javascript jquery asp.net vb.net html


【解决方案1】:

更新面板内的控件不需要 AsyncPostBackTrigger。默认情况下,更新面板内声明的控件将触发异步调用。删除这一行:

<asp:AsyncPostBackTrigger ControlID="DropDown1" EventName="SelectedIndexChanged" /> 

为了更好地理解,我建议阅读AsyncPostBackTrigger vs PostBackTriggerWhat is the different between AsyncPostBackTrigger & PostBackTrigger really?

【讨论】:

  • 问题已解决。解决方案文件已损坏,因此它以这种方式运行。是的,我同意不需要写上述行。感谢您的建议,但即使我们保留这条线也没有问题。
猜你喜欢
  • 2011-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-08
相关资源
最近更新 更多