asp.net 开发网络考试系统 倒计时功能
我做了一个asp.net网络考试系统,现在缺少一个功能,就是在考试时显示所剩时间和已考试时间,时间到了后自动提交(简单的说就是有个倒计时表实现倒计时功能)我用的是asp....
我做了一个asp.net网络考试系统,现在缺少一个功能,就是在考试时显示所剩时间和已考试时间,时间到了后自动提交(简单的说就是有个倒计时表实现倒计时功能)
我用的是asp.net2005+sql2000,希望此功能能用timer控件实现。 展开
我用的是asp.net2005+sql2000,希望此功能能用timer控件实现。 展开
3个回答
展开全部
用一个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;
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;
展开全部
后台代码:
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>
根据你自己需求再改下吧
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>
根据你自己需求再改下吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
新建timer实例timer1,点击开始考试时timer1设置可用,然后把它的interval属性设为60000(60秒执行一次),然后在tick事件里写你要进行的判断就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询