asp.net 开发网络考试系统 倒计时功能

我做了一个asp.net网络考试系统,现在缺少一个功能,就是在考试时显示所剩时间和已考试时间,时间到了后自动提交(简单的说就是有个倒计时表实现倒计时功能)
我用的是asp.net2005+sql2000,希望此功能能用timer控件实现。

用一个timer控件,把interval设为1000(1秒),在Tick事件里处理。
protected void Timer1_Tick(object sender, EventArgs e)
{
if (minute != 0 && second == 0)
{
second = 60;
minute--;
}
else if (hour != 0 && minute == 0 && second == 0)
{
minute = 60;
hour--;
}
else if (hour == 0 && minute == 0 && second == 0)
{
Timer1.Enabled = false;
hour = 0;
minute = 0;
second = 0;
//调用提交试卷的方法
Send();
}
else
{
second--;
}

if (hour < 10)
{
lbl_hour.Text = "0"+hour.ToString();
}
else
{
lbl_hour.Text = hour.ToString();
}

if (minute < 10)
{
lbl_minute.Text = "0"+minute.ToString();
}
else
{
lbl_minute.Text = minute.ToString();
}

if (second < 10)
{
lbl_second.Text = "0"+second.ToString();
}
else
{
lbl_second.Text = second.ToString();
}
}
其中minute、second、hour是定义的全局静态变量,lbl_hour、lbl_minute、lbl_second是用来显示时间的Label控件的ID;
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-06-01
后台代码:
public partial class Timer : System.Web.UI.Page
{

private DateTime dtExam = DateTime.Parse("2009-07-22 20:42:00"); //定义时间到期时间

protected void Page_Load(object sender, EventArgs e)
{
}

protected void timerCD_Tick(object sender, EventArgs e)
{
if (this.dtExam < DateTime.Now) //如果设置的时间已过
{
this.timerCD.Enabled = false; //将Timmer置为false
labTimes.Text = "时间到!";
}
else
{
RefreshTime(); //刷新时间
}
}

private void RefreshTime() //刷新时间的方法
{
TimeSpan ts = this.dtExam - DateTime.Now; //时间差
this.labDays.Text = ts.Days.ToString().PadLeft(2, '0') + "天";
this.labTimes.Text = ts.Hours.ToString().PadLeft(2, '0') + ":" + ts.Minutes.ToString().PadLeft(2, '0') + ":" + ts.Seconds.ToString().PadLeft(2, '0');
}
}
前台:
<body>
<form id="form1" runat="server">
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox> 
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
时<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>分<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Timer ID="timerCD" runat="server" Interval="1000" OnTick="timerCD_Tick">
</asp:Timer>
<asp:Label ID="labDays" runat="server" Width="155px"></asp:Label><asp:Label ID="labTimes" runat="server" Width="155px"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
根据你自己需求再改下吧
第2个回答  2010-06-01
新建timer实例timer1,点击开始考试时timer1设置可用,然后把它的interval属性设为60000(60秒执行一次),然后在tick事件里写你要进行的判断就行了

asp.net 开发网络考试系统 倒计时功能
用一个timer控件,把interval设为1000(1秒),在Tick事件里处理。protected void Timer1_Tick(object sender, EventArgs e){ if (minute != 0 && second == 0){ second = 60;minute--;} else if (hour != 0 && minute == 0 && second == 0){ minute = 60;hour--;} else if (ho...

倒计时交卷问题
用下面的代码就可以了 <SCRIPT language="javascript"> <!-- var sec=0;var min=0;var hou=0;flag=0;idt=window.setTimeout("ls();",1000);function ls(){ sec++;if(sec==60){sec=0;min+=1;} if(min==60){min=0;hou+=1;} document.getElementById("lbltime").innerText=min+...

相似回答
大家正在搜