0

我们在 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 %>'){ }
}
4

1 回答 1

0

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

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

为了更好地理解,我建议阅读AsyncPostBackTrigger 与 PostBackTrigger以及AsyncPostBackTrigger 和 PostBackTrigger 之间有什么区别?.

于 2013-08-29T22:48:20.827 回答