AsyncPostBackTrigger不能与同步更新调用一起使用

时间:2009-08-25 20:16:45

标签: asp.net asynchronous updatepanel ajaxcontroltoolkit

我有一个包含一些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();
}

1 个答案:

答案 0 :(得分:1)

原因如下:

  

默认情况下,页面为多个时   同步的异步回发   时间,最近发布的回发   优先。

http://www.asp.net/ajax/documentation/live/tutorials/ExclusiveAsyncPostback.aspx

以下是解决方案:
Handling Multiple Asynchronous Postbacks