AsyncPostBackTrigger не работает с одновременными вызовами обновления - PullRequest
1 голос
/ 26 августа 2009

У меня есть страница с некоторыми UpdatePanels, каждая из которых имеет собственную кнопку для ее обновления. Поскольку процедуры обновления могут занимать некоторое время, я подумал, что их асинхронный режим поможет загрузить страницу шаг за шагом.

Но при этом, когда я запускаю программно процедуру обновления каждой панели, я получаю только последнее обновление UpdatePanel.

Вот пример кода с двумя UpdatePanels. Существует требование, чтобы подпрограмма обновления запускалась на клиентской функции 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 Ответ

1 голос
/ 21 сентября 2009

Вот почему:

По умолчанию, когда страница делает несколько асинхронные обратные передачи в то же время, постбэк, сделанный совсем недавно имеет приоритет.

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

Вот решение:
Обработка нескольких асинхронных обратных передач

...