【发布时间】:2012-12-09 11:58:45
【问题描述】:
我有一个 asp.net 应用程序,它应该像秒表计时器一样工作。我已经尝试过如何让计时器使用秒来计算时间。我使用了一种效率很低的算法。然后我尝试使用日期时间数学来使用时间跨度对象,但由于这基本上是一个时钟,所以它是不可取的。现在我正在尝试实现 System.Diagnostics,以便可以使用 Stopwatch 对象。当我运行我的程序时,应该随时间更新的标签只显示全 0。
这是带有计时器和更新面板的 .aspx 页面中的代码:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Timer ID="Timer1" runat="server" Enabled="false"
Interval="1000" OnTick="Timer1_Tick"></asp:Timer>
<asp:Label ID="Label1" runat="server"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
这是我的开始按钮启动秒表和计时器的事件:
protected void Start_Click(object sender, EventArgs e)
{
//Start the timer
Timer1.Enabled = true;
stopWatch.Start();
}
这是 timer1 的事件(currentTime 是一个时间跨度对象):
protected void Timer1_Tick(object sender, EventArgs e)
{
currentTime = stopWatch.Elapsed;
Label1.Text = String.Format("{0:00}:{1:00}:{2:00}",
currentTime.Hours.ToString(), currentTime.Minutes.ToString(),
currentTime.Seconds.ToString());
老实说,我不知道自己做错了什么。我认为这将是制作秒表计时器的最简单方法,但标签内没有任何变化。我将不胜感激任何帮助。如有需要,我会提供更多信息。
【问题讨论】:
-
看看this answer对你有没有好处
-
ASP.Net 代码在服务器上运行,您正在尝试查看浏览器中的更改 - 因此您得到静态 0。很可能史蒂夫的链接(客户端计时器)是您需要的 - 否则请评论关于你想要达到的目标。
-
我只是想做一个秒表计时器,我希望我可以使用 CodeBehind 文件来做到这一点,但我想我不得不使用 JavaScript 来做到这一点。