Timer.Enabled Property


The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Gets or sets a value that indicates whether the Timer control initiates a postback to the server after the number of milliseconds specified in the Interval property has elapsed.

Namespace:   System.Web.UI
Assembly:  System.Web.Extensions (in System.Web.Extensions.dll)

public bool Enabled { get; set; }

Property Value

Type: System.Boolean

true if Timer will initiate a postback; otherwise, false. The default value is true.

Use the Enabled property to turn the Timer control on and off. When you set Enabled to true, the Timer control starts its timer countdown when the Web page is rendered.

On postback, you can change property values in the Enabled property, and the changes will be reflected when the Web page content is rendered in the browser. If you change the Enabled property and then change it back to its original value during the same postback, the Timer control runs as if no change had been made.

The following example shows an UpdatePanel control that displays a randomly generated stock price and the time that the stock price was generated. By default, the Timer control updates the content in the UpdatePanel control every 10 seconds. The user can decide to update the stock price every 10 seconds, every 60 seconds, or not at all. When the user decides not to update the stock price, the Enabled property is set to false.

<%@ 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 id="Head1" 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");

        protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
            Timer1.Enabled = true;
            Timer1.Interval = 10000;

        protected void RadioButton2_CheckedChanged(object sender, EventArgs e)
            Timer1.Enabled = true;
            Timer1.Interval = 60000;

        protected void RadioButton3_CheckedChanged(object sender, EventArgs e)
            Timer1.Enabled = false;

    <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">
            <asp:AsyncPostBackTrigger ControlID="Timer1" />
            Stock price is <asp:Label id="StockPrice" runat="server"></asp:Label><BR />
            as of <asp:Label id="TimeOfPrice" runat="server"></asp:Label>  
            <br />

        <br />
        Update stock price every:<br />
        <asp:RadioButton ID="RadioButton1" AutoPostBack="true" GroupName="TimerFrequency" runat="server" Text="10 seconds" OnCheckedChanged="RadioButton1_CheckedChanged" /><br />
        <asp:RadioButton ID="RadioButton2" AutoPostBack="true" GroupName="TimerFrequency" runat="server" Text="60 seconds" OnCheckedChanged="RadioButton2_CheckedChanged" /><br />
        <asp:RadioButton ID="RadioButton3" AutoPostBack="true" GroupName="TimerFrequency" runat="server" Text="Never" OnCheckedChanged="RadioButton3_CheckedChanged" />
        <br />
        Page loaded at <asp:Label ID="OriginalTime" runat="server"></asp:Label>

.NET Framework
Available since 3.5
Return to top