勾选事件结束后按钮未禁用

时间:2012-10-20 14:18:28

标签: asp.net timer

<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事件结束后

按钮未被禁用

2 个答案:

答案 0 :(得分:2)

这是完全正确的行为,因为按钮在更新面板的外部。请将其包含在ContentTemplate中,或者创建新的更新面板,在其中包装此按钮并将Update type设置为Always(我认为它是默认行为)

答案 1 :(得分:2)

我认为您应该将按钮放在内容模板中,以便在更新更新面板时禁用该按钮。