0

いくつかのUpdatePanelコントロールを含むページがあり、それぞれに関連するUpdateProgress. 非同期リクエストがポストバックされると、最初のUpdateProgressコントロールのみが表示されます。他の要求は正常に完了しますが、UpdateProgress表示されません。

ページ上のすべての更新パネルを適切に表示するにはどうすればよいですか?

問題を示す例を次に示します (申し訳ありませんが、少し長くなります)。

aspx ファイル:

<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
  <ContentTemplate>
    <asp:Timer ID="Timer1" runat="server" OnTick="Timer1_Tick" Enabled="true" Interval="1000" />
    <asp:Label ID="Label1" runat="server" />
  </ContentTemplate>
</asp:UpdatePanel>
<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1">
  <ProgressTemplate>Updating...</ProgressTemplate>
</asp:UpdateProgress>
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
  <ContentTemplate>
    <asp:Timer ID="Timer2" runat="server" OnTick="Timer2_Tick" Enabled="true" Interval="2000" />
    <asp:Label ID="Label2" runat="server" />
  </ContentTemplate>
</asp:UpdatePanel>
<asp:UpdateProgress ID="UpdateProgress2" runat="server" AssociatedUpdatePanelID="UpdatePanel2">
  <ProgressTemplate>Updating...</ProgressTemplate>
</asp:UpdateProgress>

コードビハインド:

protected void Timer1_Tick(object sender, EventArgs e) {
    System.Threading.Thread.Sleep(1000);
    Timer1.Enabled = false;
    Label1.Text = DateTime.Now.ToString("HH:mm:ss");
}

protected void Timer2_Tick(object sender, EventArgs e) {
    System.Threading.Thread.Sleep(1000);
    Timer2.Enabled = false;
    Label2.Text = DateTime.Now.ToString("HH:mm:ss");
}
4

1 に答える 1

0

を対応するUpdateProgress に置くと、すべてが期待どおりに機能することがわかりましたUpdatePanel...

<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1">
  <ProgressTemplate>Updating...</ProgressTemplate>
</asp:UpdateProgress>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
  <ContentTemplate>
    <asp:Timer ID="Timer1" runat="server" OnTick="Timer1_Tick" Enabled="true" Interval="1000" />
    <asp:Label ID="Label1" runat="server" />
  </ContentTemplate>
</asp:UpdatePanel>
于 2013-05-23T15:46:16.170 に答える