通过


Timer 类

定义

按定义的时间间隔执行异步或同步网页回发。

public ref class Timer : System::Web::UI::Control, System::Web::UI::IPostBackEventHandler, System::Web::UI::IScriptControl
[System.Drawing.ToolboxBitmap(typeof(EmbeddedResourceFinder), "System.Web.Resources.Timer.bmp")]
public class Timer : System.Web.UI.Control, System.Web.UI.IPostBackEventHandler, System.Web.UI.IScriptControl
[<System.Drawing.ToolboxBitmap(typeof(EmbeddedResourceFinder), "System.Web.Resources.Timer.bmp")>]
type Timer = class
    inherit Control
    interface IPostBackEventHandler
    interface IScriptControl
Public Class Timer
Inherits Control
Implements IPostBackEventHandler, IScriptControl
继承
Timer
属性
实现

示例

以下示例显示一个 UpdatePanel 控件,该控件显示随机生成的股票价格和生成股票价格的时间。 控件 Timer 每隔 10 秒更新控件中 UpdatePanel 的内容。

注释

在此示例中,计时器间隔设置为 10 秒,以便在运行该示例时,不必等待很长时间才能看到结果。 由于每个计时器间隔会导致导致网络流量的回发,因此在生产应用程序中,应将间隔设置为对应用程序而言仍然可行的最长时间。

<%@ Page Language="C#" AutoEventWireup="true" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Timer Example Page</title>
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            OriginalTime.Text = DateTime.Now.ToLongTimeString();
        }

        protected void Timer1_Tick(object sender, EventArgs e)
        {
            StockPrice.Text = GetStockPrice();
            TimeOfPrice.Text = DateTime.Now.ToLongTimeString();
        }

        private string GetStockPrice()
        {
            double randomStockPrice = 50 + new Random().NextDouble();
            return randomStockPrice.ToString("C");
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server" />
        <asp:Timer ID="Timer1" OnTick="Timer1_Tick" runat="server" Interval="10000" />
      
        <asp:UpdatePanel ID="StockPricePanel" runat="server" UpdateMode="Conditional">
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="Timer1" />
        </Triggers>
        <ContentTemplate>
            Stock price is <asp:Label id="StockPrice" runat="server"></asp:Label><BR />
            as of <asp:Label id="TimeOfPrice" runat="server"></asp:Label>  
        </ContentTemplate>
        </asp:UpdatePanel>
        <div>
        Page originally created at <asp:Label ID="OriginalTime" runat="server"></asp:Label>
        </div>
    </form>
</body>
</html>
<%@ Page Language="VB" AutoEventWireup="true" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Timer Example Page</title>
    <script runat="server">
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
            OriginalTime.Text = DateTime.Now.ToLongTimeString()
        End Sub

        Protected Sub Timer1_Tick(ByVal sender As Object, ByVal e As EventArgs)
            StockPrice.Text = GetStockPrice()
            TimeOfPrice.Text = DateTime.Now.ToLongTimeString()
        End Sub

        Private Function GetStockPrice() As String
            Dim randomStockPrice As Double = 50 + New Random().NextDouble()
            Return randomStockPrice.ToString("C")
        End Function
            
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
        <asp:Timer ID="Timer1" OnTick="Timer1_Tick" runat="server" Interval="10000" />
      
        <asp:UpdatePanel ID="StockPricePanel" runat="server" UpdateMode="Conditional">
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="Timer1" />
        </Triggers>
        <ContentTemplate>
            Stock price is <asp:Label id="StockPrice" runat="server"></asp:Label><BR />
            as of <asp:Label id="TimeOfPrice" runat="server"></asp:Label>  
        </ContentTemplate>
        </asp:UpdatePanel>
        <div>
        Page originally created at <asp:Label ID="OriginalTime" runat="server"></asp:Label>
        </div>
    </form>
</body>
</html>

注解

在本主题中:

介绍

通过 Timer 该控件,可以按指定的间隔执行回发。 将 Timer 控件用作控件的 UpdatePanel 触发器时,将使用 UpdatePanel 异步分页更新来更新该控件。 必须在网页中包含对象 ScriptManager 才能使用该 Timer 控件。

使用Timer控件通过包括控件内的UpdatePanel计时器来更新UpdatePanel控件。 或者,可以将计时器放置在控件之外 UpdatePanel ,并将计时器设置为触发器。

还可以通过在 Timer 网页中包含控件,而不是将其设置为控件的 UpdatePanel 触发器来启动完整网页的完整回发。

通过为 Tick 事件创建事件处理程序,可以在计时器间隔过后运行服务器代码。 在事件处理程序中,可以包含动态调整控件行为的 Timer 代码。

设置属性 Interval 以指定回发的频率。 设置属性 Enabled 以打开 Timer 或关闭。

注释

控件发回 Web 服务器时 Timer 的准确性取决于在浏览器中运行的 ECMAScript (JavaScript) window.setTimeout 函数的准确性。

Interval 属性以毫秒为单位定义。 必须将该属性设置为 Interval 一个值,该值允许在启动下一次回发之前至少完成一个异步回发。 Timer当控件在控件外部UpdatePanel时,计时器在刷新控件的内容UpdatePanel时继续运行。 如果在处理较早的回发时启动新的回发,则会取消第一次回发。 默认值为 60,000 毫秒(60 秒)。

注释

Timer在属性中添加Interval具有较小值的控件可能会生成来自 Web 服务器的大量流量。 Timer使用控件仅在必要时尽可能频繁地刷新内容。

声明性语法

<asp:Timer
    Enabled="True|False"
    EnableTheming="True|False"
    EnableViewState="True|False"
    ID="string"
    Interval="integer"
    OnDataBinding="DataBinding event handler"
    OnDisposed="Disposed event handler"
    OnInit="Init event handler"
    OnLoad="Load event handler"
    OnPreRender="PreRender event handler"
    OnTick="Tick event handler"
    OnUnload="Unload handler"
    runat="server"
    SkinID="string"
    Visible="True|False"
/>

构造函数

名称 说明
Timer()

初始化 Timer 类的新实例。

属性

名称 说明
Adapter

获取控件的特定于浏览器的适配器。

(继承自 Control)
AppRelativeTemplateSourceDirectory

获取或设置包含此控件的 PageUserControl 对象的应用程序相对虚拟目录。

(继承自 Control)
BindingContainer

获取包含此控件的数据绑定的控件。

(继承自 Control)
ChildControlsCreated

获取一个值,该值指示是否已创建服务器控件的子控件。

(继承自 Control)
ClientID

获取由 ASP.NET 生成的 HTML 标记的控件 ID。

(继承自 Control)
ClientIDMode

获取或设置用于生成属性值的 ClientID 算法。

(继承自 Control)
ClientIDSeparator

获取一个表示属性中使用的 ClientID 分隔符的字符值。

(继承自 Control)
Context

HttpContext获取与当前 Web 请求的服务器控件关联的对象。

(继承自 Control)
Controls

获取一个 ControlCollection 对象,该对象代表 UI 层次结构中指定服务器控件的子控件。

(继承自 Control)
DataItemContainer

获取对命名容器的引用(如果命名容器实现 IDataItemContainer)。

(继承自 Control)
DataKeysContainer

获取对命名容器的引用(如果命名容器实现 IDataKeysControl)。

(继承自 Control)
DesignMode

获取一个值,该值指示控件是否在设计图面上使用。

(继承自 Control)
Enabled

获取或设置一个值,该值指示控件在属性中指定的Interval毫秒数过后是否Timer启动回发到服务器。

EnableTheming

获取或设置一个值,该值指示主题是否应用于此控件。

(继承自 Control)
EnableViewState

获取或设置一个值,该值指示服务器控件是否将视图状态及其包含的任何子控件的视图状态保存到请求客户端。

(继承自 Control)
Events

获取控件的事件处理程序委托的列表。 此属性为只读。

(继承自 Control)
HasChildViewState

获取一个值,该值指示当前服务器控件的子控件是否具有保存的视图状态设置。

(继承自 Control)
ID

获取或设置分配给服务器控件的编程标识符。

(继承自 Control)
IdSeparator

获取用于分隔控件标识符的字符。

(继承自 Control)
Interval

获取或设置在启动回发之前等待的毫秒数。

IsChildControlStateCleared

获取一个值,该值指示此控件中包含的控件是否具有控件状态。

(继承自 Control)
IsTrackingViewState

获取一个值,该值指示服务器控件是否正在保存对其视图状态的更改。

(继承自 Control)
IsViewStateEnabled

获取一个值,该值指示是否为此控件启用视图状态。

(继承自 Control)
LoadViewStateByID

获取一个值,该值指示控件是否参与加载其视图状态,而不是 ID 索引。

(继承自 Control)
NamingContainer

获取对服务器控件命名容器的引用,该容器创建唯一的命名空间,用于区分具有相同 ID 属性值的服务器控件。

(继承自 Control)
Page

获取对 Page 包含服务器控件的实例的引用。

(继承自 Control)
Parent

获取对页面控件层次结构中服务器控件的父控件的引用。

(继承自 Control)
RenderingCompatibility

获取一个值,该值指定呈现的 HTML 将与 ASP.NET 版本兼容。

(继承自 Control)
Site

获取有关在设计图面上呈现时承载当前控件的容器的信息。

(继承自 Control)
SkinID

获取或设置要应用于控件的皮肤。

(继承自 Control)
TemplateControl

获取或设置对包含此控件的模板的引用。

(继承自 Control)
TemplateSourceDirectory

获取包含当前服务器控件的 Page 虚拟 UserControl 目录。

(继承自 Control)
UniqueID

获取服务器控件的唯一分层限定标识符。

(继承自 Control)
ValidateRequestMode

获取或设置一个值,该值指示控件是否检查浏览器的客户端输入是否存在潜在危险值。

(继承自 Control)
ViewState

获取状态信息的字典,该字典允许跨同一页的多个请求保存和还原服务器控件的视图状态。

(继承自 Control)
ViewStateIgnoresCase

获取一个值,该值指示对象是否 StateBag 不区分大小写。

(继承自 Control)
ViewStateMode

获取或设置此控件的视图状态模式。

(继承自 Control)
Visible

Visible重写类的属性Control,以防止设置此值。

方法

名称 说明
AddedControl(Control, Int32)

在将子控件添加到 Controls 对象的集合 Control 后调用。

(继承自 Control)
AddParsedSubObject(Object)

通知服务器控件对元素(XML 或 HTML)进行了分析,并将该元素添加到服务器控件的对象 ControlCollection

(继承自 Control)
ApplyStyleSheetSkin(Page)

将页面样式表中定义的样式属性应用于控件。

(继承自 Control)
BeginRenderTracing(TextWriter, Object)

开始对呈现数据进行设计时跟踪。

(继承自 Control)
BuildProfileTree(String, Boolean)

收集有关服务器控件的信息,并将其传送到 Trace 为页面启用跟踪时要显示的属性。

(继承自 Control)
ClearCachedClientID()

将缓存 ClientID 的值设置为 null

(继承自 Control)
ClearChildControlState()

删除服务器控件的子控件的控件状态信息。

(继承自 Control)
ClearChildState()

删除所有服务器控件的子控件的视图状态和控件状态信息。

(继承自 Control)
ClearChildViewState()

删除所有服务器控件的子控件的视图状态信息。

(继承自 Control)
ClearEffectiveClientIDMode()

ClientIDMode 当前控件实例的属性和任何子控件的属性设置为 Inherit

(继承自 Control)
CreateChildControls()

ASP.NET 页面框架调用,以通知使用基于组合的实现创建任何子控件的服务器控件,以准备回发或呈现。

(继承自 Control)
CreateControlCollection()

创建一个新 ControlCollection 对象,用于保存服务器控件的子控件(文本控件和服务器)。

(继承自 Control)
DataBind()

将数据源绑定到调用的服务器控件及其所有子控件。

(继承自 Control)
DataBind(Boolean)

将数据源绑定到已调用的服务器控件及其所有子控件,并提供引发 DataBinding 事件的选项。

(继承自 Control)
DataBindChildren()

将数据源绑定到服务器控件的子控件。

(继承自 Control)
Dispose()

使服务器控件能够在从内存释放之前执行最终清理。

(继承自 Control)
EndRenderTracing(TextWriter, Object)

结束呈现数据的设计时跟踪。

(继承自 Control)
EnsureChildControls()

确定服务器控件是否包含子控件。 如果没有,它将创建子控件。

(继承自 Control)
EnsureID()

为未分配标识符的控件创建标识符。

(继承自 Control)
Equals(Object)

确定指定的对象是否等于当前对象。

(继承自 Object)
FindControl(String, Int32)

在当前命名容器中搜索具有指定 id 和整数的服务器控件(在参数中指定的 pathOffset 整数),这有助于搜索。 不应重写此方法的 FindControl 此版本。

(继承自 Control)
FindControl(String)

使用指定 id 参数搜索服务器控件的当前命名容器。

(继承自 Control)
Focus()

将输入焦点设置为控件。

(继承自 Control)
GetDesignModeState()

获取控件的设计时数据。

(继承自 Control)
GetHashCode()

用作默认哈希函数。

(继承自 Object)
GetRouteUrl(Object)

获取对应于一组路由参数的 URL。

(继承自 Control)
GetRouteUrl(RouteValueDictionary)

获取对应于一组路由参数的 URL。

(继承自 Control)
GetRouteUrl(String, Object)

获取对应于一组路由参数和路由名称的 URL。

(继承自 Control)
GetRouteUrl(String, RouteValueDictionary)

获取对应于一组路由参数和路由名称的 URL。

(继承自 Control)
GetScriptDescriptors()

Timer 传递给在浏览器中实现计时器逻辑的客户端组件的对象中检索属性。

GetScriptReferences()

检索控件的 Timer 客户端脚本。

GetType()

获取当前实例的 Type

(继承自 Object)
GetUniqueIDRelativeTo(Control)

返回指定控件属性的前缀部分 UniqueID

(继承自 Control)
HasControls()

确定服务器控件是否包含任何子控件。

(继承自 Control)
HasEvents()

返回一个值,该值指示是为控件或任何子控件注册事件。

(继承自 Control)
IsLiteralContent()

确定服务器控件是否仅保留文本内容。

(继承自 Control)
LoadControlState(Object)

从方法保存 SaveControlState() 的上一页请求中还原控件状态信息。

(继承自 Control)
LoadViewState(Object)

从方法保存 SaveViewState() 的上一页请求中还原视图状态信息。

(继承自 Control)
MapPathSecure(String)

检索虚拟路径映射到的物理路径(绝对路径或相对路径)。

(继承自 Control)
MemberwiseClone()

创建当前 Object的浅表副本。

(继承自 Object)
OnBubbleEvent(Object, EventArgs)

确定服务器控件的事件是否传递页面的 UI 服务器控件层次结构。

(继承自 Control)
OnDataBinding(EventArgs)

引发 DataBinding 事件。

(继承自 Control)
OnInit(EventArgs)

引发 Init 事件。

(继承自 Control)
OnLoad(EventArgs)

引发 Load 事件。

(继承自 Control)
OnPreRender(EventArgs)

PreRender引发控件的事件Timer

OnTick(EventArgs)

Tick引发控件的事件Timer

OnUnload(EventArgs)

引发 Unload 事件。

(继承自 Control)
OpenFile(String)

获取用于读取文件的一个 Stream

(继承自 Control)
RaiseBubbleEvent(Object, EventArgs)

将事件的任何源及其信息分配给控件的父级。

(继承自 Control)
RaisePostBackEvent(String)

Timer使控件能够在将页面发布到服务器时引发Tick事件。

RemovedControl(Control)

Controls 对象的集合 Control 中删除子控件后调用。

(继承自 Control)
Render(HtmlTextWriter)

Timer使用指定的HtmlTextWriter对象将控件内容呈现到浏览器。

RenderChildren(HtmlTextWriter)

将服务器控件的子级的内容输出到所提供的 HtmlTextWriter 对象,该对象写入要呈现在客户端上的内容。

(继承自 Control)
RenderControl(HtmlTextWriter, ControlAdapter)

使用提供的对象将服务器控件内容输出到所提供的HtmlTextWriterControlAdapter对象。

(继承自 Control)
RenderControl(HtmlTextWriter)

将服务器控件内容输出到提供 HtmlTextWriter 的对象,并在启用跟踪时存储有关控件的跟踪信息。

(继承自 Control)
ResolveAdapter()

获取负责呈现指定控件的控件适配器。

(继承自 Control)
ResolveClientUrl(String)

获取浏览器可以使用的 URL。

(继承自 Control)
ResolveUrl(String)

将 URL 转换为在请求客户端上可用 URL。

(继承自 Control)
SaveControlState()

保存自页面发回服务器后发生的任何服务器控件状态更改。

(继承自 Control)
SaveViewState()

保存自页面发布回服务器以来发生的任何服务器控件视图状态更改。

(继承自 Control)
SetDesignModeState(IDictionary)

设置控件的设计时数据。

(继承自 Control)
SetRenderMethodDelegate(RenderMethod)

分配事件处理程序委托以将服务器控件及其内容呈现为其父控件。

(继承自 Control)
SetTraceData(Object, Object, Object)

使用跟踪对象、跟踪数据键和跟踪数据值为呈现数据的设计时跟踪设置跟踪数据。

(继承自 Control)
SetTraceData(Object, Object)

使用跟踪数据键和跟踪数据值为呈现数据的设计时跟踪设置跟踪数据。

(继承自 Control)
ToString()

返回一个表示当前对象的字符串。

(继承自 Object)
TrackViewState()

导致跟踪服务器控件的视图状态更改,以便它们可以存储在服务器控件的对象 StateBag 中。 可通过属性访问 ViewState 此对象。

(继承自 Control)

活动

名称 说明
DataBinding

当服务器控件绑定到数据源时发生。

(继承自 Control)
Disposed

在从内存中释放服务器控件时发生,这是请求 ASP.NET 页时服务器控件生命周期的最后阶段。

(继承自 Control)
Init

在初始化服务器控件时发生,这是其生命周期中的第一步。

(继承自 Control)
Load

在将服务器控件加载到对象中 Page 时发生。

(继承自 Control)
PreRender

Control 加载对象但在呈现之前发生。

(继承自 Control)
Tick

当属性中指定的 Interval 毫秒数已过并且页面发布到服务器时发生。

Unload

从内存中卸载服务器控件时发生。

(继承自 Control)

显式接口实现

名称 说明
IControlBuilderAccessor.ControlBuilder

有关此成员的说明,请参阅 ControlBuilder

(继承自 Control)
IControlDesignerAccessor.GetDesignModeState()

有关此成员的说明,请参阅 GetDesignModeState()

(继承自 Control)
IControlDesignerAccessor.SetDesignModeState(IDictionary)

有关此成员的说明,请参阅 SetDesignModeState(IDictionary)

(继承自 Control)
IControlDesignerAccessor.SetOwnerControl(Control)

有关此成员的说明,请参阅 SetOwnerControl(Control)

(继承自 Control)
IControlDesignerAccessor.UserData

有关此成员的说明,请参阅 UserData

(继承自 Control)
IDataBindingsAccessor.DataBindings

有关此成员的说明,请参阅 DataBindings

(继承自 Control)
IDataBindingsAccessor.HasDataBindings

有关此成员的说明,请参阅 HasDataBindings

(继承自 Control)
IExpressionsAccessor.Expressions

有关此成员的说明,请参阅 Expressions

(继承自 Control)
IExpressionsAccessor.HasExpressions

有关此成员的说明,请参阅 HasExpressions

(继承自 Control)
IParserAccessor.AddParsedSubObject(Object)

有关此成员的说明,请参阅 AddParsedSubObject(Object)

(继承自 Control)
IPostBackEventHandler.RaisePostBackEvent(String)

Tick将页面发布到服务器时引发该事件。

IScriptControl.GetScriptDescriptors()

Timer 传递给客户端组件的对象中检索属性。

IScriptControl.GetScriptReferences()

检索控件的 Timer 客户端脚本。

扩展方法

名称 说明
FindDataSourceControl(Control)

返回与指定控件的数据控件关联的数据源。

FindFieldTemplate(Control, String)

返回指定控件命名容器中指定列的字段模板。

FindMetaTable(Control)

返回包含数据控件的元表对象。

适用于