首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

,用timer控件写一个倒计时

2012-05-30 
求助,用timer控件写一个倒计时。aspx:div styleborder-style: solid使用Timer控件asp:UpdatePanel I

求助,用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比这个简单,这个代码可以用在后台自动保存已经写好的答案,防止电脑异常成绩丢失这种需求上。

热点排行