2011-08-22 110 views
0

我使用帶有一些控件的updatepanel,當我點擊按鈕時,創建一個睡眠。在這個時候,我點擊第二buton,按鈕處理程序執行async successfully.but其中一個標籤不更新?更新面板中的更新控件

我有更新面板中的兩個標籤,當btnPostF按鈕點擊後,然後btnPostS按鈕, 只有lable2更新面板和lable2不更新!

<body> 
    <form id="form1" runat="server"> 
     <asp:ScriptManager ID="ScriptManager1" runat="server"> 

     <asp:UpdatePanel ChildrenAsTriggers="true" ID="UpdatePanel1" runat="server" > 
      <contenttemplate> 
        <asp:Button runat="server" Text="PostBackFirst" ID="btnPostF" 
         onclick="btnPostF_Click"/> 
        <asp:Button runat="server" Text="PostBackSecond" ID="btnPostS" 
         onclick="btnPostS_Click"/> 
        <asp:Button runat="server" Text="AbortPostBack" ID="btnAbort" 
         OnClientClick="Sys.WebForms.PageRequestManager.getInstance().abortPostBack(); 
         alert('Postback Cancelled');"/> 
        <asp:Label ID="Label1" runat="server" Text="">    
        <asp:Label ID="Label2" runat="server" Text="">    
      </contenttemplate> 

    </form> 
</body> 

protected void btnPostF_Click(object sender, EventArgs e) 
     { 
      System.Threading.Thread.Sleep(4000); 
      Label1.Text = "PostBack 1 Completed"; 

     } 

     protected void btnPostS_Click(object sender, EventArgs e) 
     { 
      System.Threading.Thread.Sleep(4000); 
      Label2.Text = "PostBack 2 Completed"; 

     } 
+0

這是什麼意思:「...只有lable2在更新面板更新和lable2不更新!!」? –

回答

0

如果你正在做第二次回發(通過點擊第二個按鈕),而客戶端(瀏覽器)正在等待完成第一次請求。只要您點擊第二個按鈕,您的第一個請求就會被客戶端中止。所以你只能從第二個請求中看到結果。

在你的例子中,如果你先點擊第二個按鈕然後點擊第一個按鈕,你將看到label1上的值而不是label2上的值。

希望這會有所幫助。

Ims