Timer 控件方案
当您要执行以下操作时,请使用 Timer 控件:
定期更新一个或多个 UpdatePanel 控件的内容,而无需刷新整个网页。
每当 Timer 控件导致回发时运行服务器上的代码。
按定义的时间间隔将整个网页同步发布到 Web 服务器上。
背景
Timer 控件是一个服务器控件,它会将一个 JavaScript 组件嵌入到网页中 。当经过 Interval 属性中定义的时间间隔时,该 JavaScript 组件将从浏览器 启动回发。您可以在运行于服务器上的代码中设置 Timer 控件的属性,这些属 性将传递到该 JavaScript 组件。
使用 Timer 控件时,必须在网页中包括 ScriptManager 类的实例。
若回发是由 Timer 控件启动的,则 Timer 控件将在服务器上引发 Tick 事 件。当页发送到服务器时,可以创建 Tick 事件的事件处理程序来执行一些操作 。
设置 Interval 属性可指定回发发生的频率,而设置 Enabled 属性可打开或 关闭 Timer。Interval 属性是以毫秒为单位定义的,其默认值为 60,000 毫秒 (即 60 秒)。
说明:
将 Timer 控件的 Interval 属性设置为一个较小值会产生发送到 Web 服务 器的大量通信。使用 Timer 控件可以仅按所需的频率刷新内容。
如果不同的 UpdatePanel 控件必须以不同的时间间隔更新,则可以在网页上 包含多个 Timer 控件。或者,可以将 Timer 控件的单个实例用作网页中多个 UpdatePanel 控件的触发器。
在 UpdatePanel 控件内部使用 Timer 控件
当 Timer 控件包含在 UpdatePanel 控件内部时,Timer 控件将自动用作 UpdatePanel 控件的触发器。可以通过将 UpdatePanel 控件的 ChildrenAsTriggers 属性设置为 false 来重写此行为。
对于 UpdatePanel 控件内部的 Timer 控件,仅在每个回发完成时重新创建 JavaScript 计时组件。因此,在页从回发返回之前,计时时间间隔不会开始。 例如,如果 Interval 属性设置为 60,000 毫秒(60 秒),但完成回发需要 3 秒,则下一个回发将在上一个回发的 63 秒之后发生。
下面的示例演示如何将 Timer 控件包含在 UpdatePanel 控件中。
<asp:ScriptManager runat="server" id="ScriptManager1" />
<asp:UpdatePanel runat="server" id="UpdatePanel1"
UpdateMode="Conditional">
<contenttemplate>
<asp:Timer id="Timer1" runat="server"
Interval="120000"
OnTick="Timer1_Tick">
</asp:Timer>
</contenttemplate>
</asp:UpdatePanel>