2012-10-20 64 views
0
<div> 
     <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
      <ContentTemplate> 
       <asp:Timer ID="Timer1" Interval="1000" OnTick="ontick" runat="server"> 
       </asp:Timer> 
       <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
      </ContentTemplate> 
      <Triggers> 
       <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" /> 
      </Triggers> 
     </asp:UpdatePanel> 
     <asp:Button runat="server" EnableViewState="true" Text="button" ID="btnText" /> 
    </div> 

protected void ontick(object sender, EventArgs e) 
    { 
     Thread.Sleep(2000); 
     TextBox1.Text = "1";   
     Timer1.Enabled = false; 
     btnText.Enabled = false; 
    } 

按鈕結束按鈕沒有結束記號事件後沒有禁用

+0

由於按鈕位於'UpdatePanel'之外,它不受異步回發的影響。嘗試將'AsyncPostBackTrigger'改爲'PostBackTrigger';這將刷新整個頁面。 – Mihai

回答

2

這是完全正確的行爲,因爲按鈕是之外更新面板 Tick事件後被禁止。請將其包含在ContentTemplate中,或者創建新的更新面板,在其中包裝此按鈕並將更新類型設置爲始終(我認爲它是默認行爲)

2

我認爲您應該將按鈕放入內容模板中當更新面板更新時它將被禁用。