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

saturn89 2012-05-28 11:12:28
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如何设置?

谢谢
...全文
122 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
saturn89 2012-05-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

我拷贝了你的代码,没有发现异常,一直在倒计时。

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

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

我后来用Js写了。我今天再用timer的时候还是发现没办法动态倒计时,所以就改用js了。谢谢。
hztltgg 2012-05-29
  • 打赏
  • 举报
回复
我拷贝了你的代码,没有发现异常,一直在倒计时。

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

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

1,979

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧