我有一个包含一些UpdatePanel的页面,每个都有自己的按钮来更新它。由于更新例程可能需要一些时间,我认为使它们异步将有助于逐步加载页面。
但是这样做,当我以编程方式触发每个面板的更新例程时,我只更新了最后一个UpdatePanel。
这是一个代码示例,带有两个UpdatePanel。要求必须在clientide pageLoad函数上触发更新例程。
这是一个错误还是我在代码中遗漏了什么?
谢谢=)
<asp:UpdatePanel ID="Panel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:TextBox ID="Text1" runat="server" />
<asp:Button ID="Button1" runat="server" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
<asp:UpdatePanel ID="Panel2" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:TextBox ID="Text2" runat="server" />
<asp:Button ID="Button2" runat="server" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button2" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
客户端代码:
function pageLoad()
{
$('#Button1').click();
$('#Button2').click();
}
答案 0 :(得分:1)
原因如下:
默认情况下,页面为多个时 同步的异步回发 时间,最近发布的回发 优先。
http://www.asp.net/ajax/documentation/live/tutorials/ExclusiveAsyncPostback.aspx