首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在asp.net web应用程序(C#)中设置倒计时计时器?

如何在asp.net web应用程序(C#)中设置倒计时计时器?
EN

Stack Overflow用户
提问于 2010-11-11 13:12:22
回答 3查看 14.8K关注 0票数 6

我正在C# asp.net中创建timed online测试。我已经使用本地机器时间创建了它。但在数据库断开连接或系统挂起的情况下,倒计时计时器必须从计算机挂起或意外数据库断开的时间开始。例如,用户回答问题10分钟后,系统意外挂起。恢复后,倒计时必须从10分钟开始。有没有人可以帮我在C#中编码?

我使用了以下代码,但它在上面的场景中没有用处。

代码语言:javascript
复制
int totalTime = (Convert.ToInt32(ViewState["totaltime"])) * 60;

DateTime startTime = (DateTime)ViewState["startTime"];
TimeSpan elaspedTime = DateTime.Now.Subtract(startTime);
Literal1.Text = elaspedTime.Hours.ToString() + "h" + ":" + elaspedTime.Minutes.ToString() + 
    "m" + ":" + elaspedTime.Seconds.ToString() + "s";

int finish = Convert.ToInt32(elaspedTime.TotalSeconds);

int remaingsec = (totalTime - finish);
TimeSpan remainingtime = TimeSpan.FromSeconds(remaingsec);
string answer = string.Format("{0:D2}h:{1:D2}m:{2:D2}s",
                    remainingtime.Hours,
                    remainingtime.Minutes,
                    remainingtime.Seconds,
                    remainingtime.Milliseconds);

LIteral2.Text =  answer;
if (totalTime == finish)
{
     lnkFinish_Click(sender, e);
     Response.Redirect(@"~/Error.aspx");
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-17 06:58:51

我的意见是使用javascript进行倒计时(也是嵌入式的),并使用json传递你的数据库数据,当数据库导致连接断开时,你将一些数据传递给javascript,并使用你处理的控件进行倒计时。

下载以下javascript文件并将其放入web应用程序目录中:http://scripts.hashemian.com/js/countdown.js

然后使用像这样的东西:

代码语言:javascript
复制
<script type="text/javascript">
        TargetDate = "12/25/207 12:01 AM";
        BackColor = "red";
        ForeColor = "white";
        CountActive = true;
        CountStepper = -1;
        LeadingZero = true;
        DisplayFormat = "%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds.";
        FinishMessage = "It is here!";
    </script>
票数 1
EN

Stack Overflow用户

发布于 2010-11-11 13:34:29

我认为更好的做法是在表格中设置一个字段,并在其中设置问题的总时间,然后每15/30秒(根据您要求的频率)更新该字段,并在每次更新时从总时间中减去15/30秒的值。并执行此操作,直到字段的值> 0。

为此,您可以借助timer (javascript timer)和ajax。向服务器发送更新该字段的请求。

对于ajax,我认为最好是创建一个webservice (它将更新该字段的值),并在javascript定时器的基础上使用ajax调用它。你也可以使用ajax定时器。

javascript计时器参考:

http://dotnetacademy.blogspot.com/2010/09/timer-in-javascript.html

票数 1
EN

Stack Overflow用户

发布于 2010-11-18 13:18:11

您可以使用windows注册表来存储计数器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4151532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档