我有一个计时器(带标签)和我的一个页面上的按钮。计时器使用简单的onTickEvent。
protected void Timer1_Tick(object sender, EventArgs e)
{
int seconds = int.Parse(Label1.Text);
if (seconds > 0)
Label1.Text = (seconds - 1).ToString();
else
Timer1.Enabled = false;
}
所有扩展程序在UpdatePanel中组合在一起
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button ID="schlbtn1" runat="server" Text="Go To Lectures" CssClass="btn btn-lg btn-success btn-block" OnClick="schlbtn1_Click" Visible="true" ForeColor="Black" ViewStateMode="Enabled" ClientIDMode="Static" />
<asp:Label ID="Label1" runat="server">60</asp:Label>
<asp:Timer ID="Timer1" runat="server" Interval="1000" OnTick="Timer1_Tick">
</asp:Timer>
</ContentTemplate>
</asp:UpdatePanel>
逻辑很简单。计时器使用默认设置为60的标签,并在每个间隔为1000毫秒的刻度上将其减1。一切正常但不幸的是计时器在我加载页面后立即开始倒计时。当我点击ID为“schlbtn1”的按钮时,我想以某种方式连接计时器。
答案 0 :(得分:2)
创建时默认启用计时器,因此您需要将其创建为禁用,然后手动启用它。你可以这样做:
在UpdatePanel
中(注意Enabled
设置为false):
<asp:Timer ID="Timer1" runat="server" Enabled="false" Interval="1000" OnTick="Timer1_Tick"></asp:Timer>
然后在按钮(schlbtn1_Click
)的点击事件中启用计时器:
Timer1.Enabled = true;
这将导致计时器启动被禁用,然后在按下按钮时启动。