我有一个网页表单,其中我想以时间减少的方式显示标签从180秒到零,我使用以下代码。
<div>
<asp:ScriptManager ID="SM1" runat="server"></asp:ScriptManager>
<asp:Timer ID="timer1" runat="server" Interval="1000"
OnTick="timer1_tick">
</asp:Timer>
</div>
<div>
<asp:UpdatePanel ID="updPnl" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Label ID="lblTimer" runat="server"></asp:Label>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="timer1" EventName="tick" />
</Triggers>
</asp:UpdatePanel>
</div>
和背后的代码
protected void timer1_tick(object sender, EventArgs e)
{
if (0 > DateTime.Compare(DateTime.Now,
DateTime.Parse(Session["TimeCount"].ToString())))
{
lblTimer.Text = "Number of Second Left: " +
((Int32)DateTime.Parse(Session["TimeCount"].
ToString()).Subtract(DateTime.Now).TotalSeconds).ToString();
}
else
{
}
}
和页面加载
protected void Page_Load(object sender,EventArgs e) {
if (!Page.IsPostBack)
{
Page.Header.Title = "Test";
NewRecord();
}
if (!SM1.IsInAsyncPostBack)
Session["TimeCount"] = DateTime.Now.AddSeconds(180).ToString();
}
问题是当用户点击按钮时计数器每次刷新180次,而标签是177,173等静态值,我想向用户显示计数更改?它基本上是Q / A软件。