954,593 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

ASP.Net timer control

I am having a few problems with the Timer component in ASP.NET. I can get it to work in the C# part of visual studio but not in the ASP.NET.

The thing is a number will be logged into the website so each person will need to view the same timer counting down to zero. I guess this rules out putting it in the html??

This is the code in ASP.NET. The timer1_Elapsed method is not being called though all sources tell met this is how it works.


protected System.Timers.Timer timer1;
private int test;

protected void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
test = 1;

timer1.Interval = 1000;
timer1.Start();

timer1.Enabled = true;

}

private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{

test = test+1;

lblCounter.Text = "count:"+test;

}

In C# the 'timer1.enabled' method calls the 'timer1_Tick' which, as far as i know, is the same as the Elapsed method above.

Many thanks!!!!

thebookie
Newbie Poster
2 posts since Feb 2006
Reputation Points: 10
Solved Threads: 0
 

i might be wrong but i dont think you can use a timer in asp.net because inorder to change a value on the page it has to do a postback, which reloads the page each time.

but ive seen this done with ajax. like using
setTimeout() to loop and XMLHttpRequest to do the postback

magicajax.net makes it easy

plazmo
Posting Whiz in Training
207 posts since Aug 2005
Reputation Points: 23
Solved Threads: 16
 

the timer is doing its function i bet. But test is reset on each postback so will always be 1. for everyone to have the same function you should put test in the application cache (or store is somewhere outside of the session - maybe a db or file).

f1 fan
Posting Whiz in Training
279 posts since Jan 2006
Reputation Points: 26
Solved Threads: 11
 

Hello my friend!

The timer control does not work with asp.net because web application is stateless. In order to simulate a timer in asp.net you need to use javascript.

I created a control that I call it KYNOUAJAXContainer that basically can be used as a timer. For example, if you want a clock on the top of the page, all you have to do is drop a Label control into this KYNOUAJAXContainer control and in the page load event set the current time to the label's text property.

I posted some tutorials at the same website where I uploaded the KYNOUAJAXContainer control. Go ahead and check it out! Logon to http://www.KYNOU.com

I hope I helped :)

LeProgrammeur
Newbie Poster
5 posts since Jun 2006
Reputation Points: 10
Solved Threads: 0
 

Hi!
I created a control that I named KYNOUAJAXContainer that can be found at http://www.kynou.com/KYNOUControls/KYNOUControls.zip . This control allows you to add regular ASP.NET controls into it and they all become AJAX enabled. You can use this container control as a sort of timer control for ASP.NET. This is because the container control has a property called ShouldRefresh. When this property is set to true, it will refresh the content of all the controls inside of the container every RefreshInterval seconds (RefreshInterval is another property of the container control).
I posted tutorials that will walk you through the steps to use the control at http://www.KYNOU.com under the Tutorial Index => Ajax => KYNOU AJAX Controls link

LeProgrammeur
Newbie Poster
5 posts since Jun 2006
Reputation Points: 10
Solved Threads: 0
 

Timer controls work well on an asp.net page. As a web page refreshes each time it is back, You should declare the time control as a static attribute of the page, as well as the timer event handler.
Hope this help.

ebookfinder
Newbie Poster
19 posts since Jul 2007
Reputation Points: 10
Solved Threads: 2
 
Timer controls work well on an asp.net page. As a web page refreshes each time it is back, You should declare the time control as a static attribute of the page, as well as the timer event handler. Hope this help.

I have done as it is as you provided..........downloaded kynoucontrols,added to the ttol box and then in page load I added the code to display time........but it not running..........any idea

girigdk
Newbie Poster
2 posts since May 2008
Reputation Points: 10
Solved Threads: 1
 

The timer can be used in ASP.NET page as follows:

protected System.Timers.Timer _timer;
protected void Page_Init(object sender, EventArgs e)
{
        // initialize the time control
        _timer = new System.Timers.Timer(5000);

        // subscribe to the Elapsed event
        _timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
}

protected void Page_Load(object sender, EventArgs e)
{
            _timer.Start();
}

private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
            // Do whatever you want to do on each tick of the timer
}
dattadeb
Newbie Poster
1 post since Mar 2009
Reputation Points: 10
Solved Threads: 0
 

Try the Timer1_Tick event.

herrturtur
Newbie Poster
1 post since Sep 2009
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You