读书人

用timer控件写一个倒计时

发布时间: 2012-05-30 20:20:04 作者: rapoo

求助,用timer控件写一个倒计时。
aspx:

<div style="border-style: solid;">
使用Timer控件
<asp:UpdatePanel ID="UpdatePanelCountdown" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Label ID="lblTimerDays" runat="server" Text="0" ForeColor="Red" />天
<asp:Label ID="lblTimerHours" runat="server" Text="0" ForeColor="Red" />时
<asp:Label ID="lblTimerMinutes" runat="server" Text="0" ForeColor="Red" />分
<asp:Label ID="lblTimerSeconds" runat="server" Text="0" ForeColor="Red" />秒
<asp:Timer ID="Timer1" runat="server" Interval="1000" OnTick="Timer1_Tick1" />
</ContentTemplate>
</asp:UpdatePanel>
</div>

cs:


public partial class countdown : System.Web.UI.Page
{
DateTime NowTime;//当前时间
DateTime EndTime = Convert.ToDateTime("2012-5-28 23:59:59");//结束时间
TimeSpan CountdownSpan;//时间间隔

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
NowTime = DateTime.Now;
CountdownSpan = EndTime - NowTime;
if (CountdownSpan.TotalSeconds > 0)
{
lblTimerDays.Text = CountdownSpan.Days.ToString();
lblTimerHours.Text = CountdownSpan.Hours > 10 ? CountdownSpan.Hours.ToString() : "0" + CountdownSpan.Hours.ToString();
lblTimerMinutes.Text = CountdownSpan.Minutes > 10 ? CountdownSpan.Minutes.ToString() : "0" + CountdownSpan.Minutes.ToString();
lblTimerSeconds.Text = CountdownSpan.Seconds > 10 ? CountdownSpan.Seconds.ToString() : "0" + CountdownSpan.Seconds.ToString();
}
}
}

protected void Timer1_Tick1(object sender, EventArgs e)
{
NowTime = DateTime.Now;
CountdownSpan = EndTime - NowTime;
if (CountdownSpan.TotalSeconds > 0)
{
lblTimerDays.Text = CountdownSpan.Days.ToString();
lblTimerHours.Text = CountdownSpan.Hours > 10 ? CountdownSpan.Hours.ToString() : "0" + CountdownSpan.Hours.ToString();
lblTimerMinutes.Text = CountdownSpan.Minutes > 10 ? CountdownSpan.Minutes.ToString() : "0" + CountdownSpan.Minutes.ToString();
lblTimerSeconds.Text = CountdownSpan.Seconds > 10 ? CountdownSpan.Seconds.ToString() : "0" + CountdownSpan.Seconds.ToString();
}
}
}


可以运行出来,但是倒计时两秒之后就停下来不再倒计时,每次运行,所差时间都对。。是什么原因哩?

其实我是要做个强制交卷设置的东西。想在倒计时完成后强制交卷,这样endtime如何设置?

谢谢

[解决办法]
我拷贝了你的代码,没有发现异常,一直在倒计时。

检查一下2012-5-28 23:59:59这个时间设置是不是正确。

至于你的需求是强制交卷,那么真不应该这样用代码,用客户端javascript比这个简单,这个代码可以用在后台自动保存已经写好的答案,防止电脑异常成绩丢失这种需求上。

读书人网 >C++ Builder

热点推荐