我们在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 %>'){ }
}
答案 0 :(得分:0)
对于Update Panel中的控件,您不需要AsyncPostBackTrigger。默认情况下,在更新面板内声明的控件将触发异步调用。删除这一行:
<asp:AsyncPostBackTrigger ControlID="DropDown1" EventName="SelectedIndexChanged" />
为了更好地理解,我建议您阅读AsyncPostBackTrigger vs PostBackTrigger和What is the different between AsyncPostBackTrigger & PostBackTrigger really?。