<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;
}
在tick事件结束后按钮未被禁用
答案 0 :(得分:2)
这是完全正确的行为,因为按钮在更新面板的外部。请将其包含在ContentTemplate中,或者创建新的更新面板,在其中包装此按钮并将Update type设置为Always(我认为它是默认行为)
答案 1 :(得分:2)
我认为您应该将按钮放在内容模板中,以便在更新更新面板时禁用该按钮。