如何在asp.net中使用定时器控件?

时间:2012-06-14 11:23:01

标签: c# asp.net timer

我正在创建一个在线考试网站,我想为30个问题设置一个30分钟的计时器...... 谁能告诉我如何在asp.net中使用定时器控件或任何其他简单的方法?

4 个答案:

答案 0 :(得分:3)

一种可能的方法是:

  • 创建一个UpdatePanel,您可以在其中插入每个问题和可能的答案
  • 在UpdatePanel中,您可以插入表示问题的UserControl(例如,此UserControl将包含带有问题的标签和一些单选按钮或带有相关标签的复选框)
  • 在UpdatePanel内部,您可以使用Timer控件,就像在Msdn http://msdn.microsoft.com/en-us/library/bb398865.aspx <asp:Timer id="Timer1" runat="server" Interval="120000" OnTick="Timer1_Tick"> </asp:Timer>
  • 上的示例一样
  • 定时器控件的OnTick事件中定义的函数将在每个时间间隔到期后在服务器端触发;在那里,您将使用下一个问题的值加载UserControl,并检查测试是否已完成或是否已经过了总时间(例如,通过对变量中的总耗用时间求和)

如果需要,您还可以在页面中显示倒计时,并使用JavaScript进行更新。

答案 1 :(得分:2)

<asp:Timer ID="Timer1" runat="server" Interval="1000" ontick="Timer1_Tick">
    </asp:Timer> // For one minute
<asp:UpdatePanel ID="UpdatePanel1"
    runat="server">
    <ContentTemplate>
        <asp:Label ID="Label1" runat="server"></asp:Label>
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick">
        </asp:AsyncPostBackTrigger>
    </Triggers>
</asp:UpdatePanel>

protected void Timer1_Tick(object sender, EventArgs e)
{
    // Label1.Text = DateTime.Now.Second.ToString();
}

答案 2 :(得分:0)

...或者您可以使用JQuery。设置计时器(http://code.google.com/p/jquery-timer/),然后在结束时触发向上时间操作。可以利用Ajax来尝试答案等 - 但这会使其他所有内容保持在前端。

答案 3 :(得分:0)

在更新面板中添加计时器控件是一种避免页面闪烁或总页面刷新的方式,并且用户可以获得流畅的体验。但是计时器控制效率很低,因为重复的请求被发送到服务器,这可能导致过载和不必要的资源浪费。 AJAX将是更好的选择,或者任何客户端javascript都可能更好。轮询是另一种有效的方法。