Jump to content
xisto Community
Sign in to follow this  
bob3695

C#.NET: Web Timer Control Tutorial C# VB.NET

Recommended Posts

Web Timer Control C#

Difficulty: Easy
Time: 10 Minutes

The aim of this tutorial is to create a Timer that works on web pages.

Timers are a very useful control in Windows Applications but how can you use them in web pages. With the default controls you get in the .Net Framework there is not a Web Timer.

This web timer can be used as a normal web control you will be able to drag and drop it onto Web Forms, and modify it using the properties window.

This Timer Works using the JavaScript setTimeout() function which once the required time has elapsed unlike a Windows Forms Timer it post backs the page and then the Page_Load Event will handle the event.

Here is the code:

using System; using System.ComponentModel; using System.Text; using System.Web.UI; using System.Web.UI.WebControls; namespace WebControls{ 	[DefaultProperty("TimerInterval")] 	[ToolboxData("<{0}:TimerControl runat=server></{0}:TimerControl>")] 	public class TimerControl : System.Web.UI.Control, INamingContainer 	{   [Browsable(true)]   [Category("Behavior")]   [DefaultValue("TimerPostBack")]   [Description("The PostBack value.")]   public string PostBackValue   {  	 get  	 {     object viewState = this.ViewState["PostBackValue"];     return (viewState == null) ? "TimerPostBack" : (string)viewState;  	 }  	 set { this.ViewState["PostBackValue"] = value; }   }   [Browsable(true)]   [Category("Behavior")]   [DefaultValue(1000)]   [Description("The timer interval, in milli-seconds (1000 = 1 second).")]   public double TimerInterval   {  	 get  	 {     object viewState = this.ViewState["TimerInterval"];     return (viewState == null) ? 1000 : (double)viewState;  	 }  	 set { this.ViewState["TimerInterval"] = value; }   }   protected override void OnPreRender(EventArgs e)   {  	 StringBuilder sbScript = new StringBuilder();  	 sbScript.Append("\n<script language=\"JavaScript\" type=\"text/javascript\">\n");  	 sbScript.Append("<!--\n");  	 sbScript.Append("\n");  	 sbScript.Append("function autoPostBackTimer()\n");  	 sbScript.Append("{\n");  	 sbScript.Append("   " + this.Page.GetPostBackEventReference(this, this.PostBackValue) + ";");  	 sbScript.Append("}\n");  	 sbScript.Append("// -->\n");  	 sbScript.Append("</script>\n");         	 this.Page.RegisterClientScriptBlock(     "TimerControlScript", sbScript.ToString());  	 StringBuilder sbScript2 = new StringBuilder();  	 sbScript2.Append("\n<script language=\"JavaScript\" type=\"text/javascript\">\n");  	 sbScript2.Append("<!--\n");  	 sbScript2.Append("window.setTimeout('autoPostBackTimer()', " + this.TimerInterval.ToString() + ")\n");  	 sbScript2.Append("// -->\n");  	 sbScript2.Append("</script>\n");  	 this.Page.RegisterStartupScript(     "TimerControlStartupScript", sbScript2.ToString());   } 	} }

Just Copy and Paste it into C# Web Application or C# Web Control Project and build it.

Then if you have made a web control project you may want to compile it and then add it to the Visual Studio tool box.

To actually use the Web Timer Drag and Drop it onto a Web Form set the Time (1 sec = 1000), and the Post Back value, and then in the Page_Load event add this

C#

private void Page_Load(object sender, System.EventArgs e)  { 	 if ( this.IsPostBack ) 	 {     object eventArgument = this.Request["__EVENTARGUMENT"];     if ( (eventArgument != null) && (eventArgument.ToString().Trim() == this.TimerControl1.PostBackValue) )     {   	 //Function or code to handle the elapse of the timer.     }     else     {    	 // Do Nothing     } 	 }

VB

  Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load        If Page.IsPostBack Then            Dim eventarguement As Object = Me.Request("__EVENTARGUMENT")            If Not eventarguement = Nothing And CStr(eventarguement).Trim() = Me.TimerControl1.PostBackValue Then                'Code to Handle event            Else                ' Do Nothing            End If        End If    End Sub

Adding your own code to handle the event in the appropriate place.

Rich
Edited by microscopic^earthling (see edit history)

Share this post


Link to post
Share on other sites

while creating threads me got disconnected from the controle

C#.NET: Web Timer Control Tutorial

 

While making to the chat server once making connection with the ip of the local server me getting output only one at time is this is the timer problem.

 

-reply by vishav

Share this post


Link to post
Share on other sites

yemen- thmar unv

C#.NET: Web Timer Control Tutorial

 

I abdulkreem

 

I create programm to send message by email

 

But this program failure in this task

 

When I pressed on send command show this message

 

Do't able to connect in server

 

Please help me this my genuration project

 

This my programm

 

 

 

Using System;

 

Using System.Collections.Generic;

 

Using System.ComponentModel;

 

Using System.Data;

 

Using System.Drawing;

 

Using System.Text;

 

Using System.Windows.Forms;

 

 

 

Using System.Collections;

 

Using System.Web;

 

Using System.Web.SessionState;

 

Using System.Web.UI;

 

Using System.Web.UI.WebControls;

 

Using System.Web.UI.HtmlControls;

 

Using System.Web.Mail;

 

 

 

MailMessage myMail = null;

 

 

 

 

 

try

 

{

 

myMail = new MailMessage();

 

 

 

 

 

myMail.From = "ahmed_zoher95@yahoo.Com";

 

 

 

 

 

 

 

myMail.To ="abdulkreem_2008@yahoo.Com";

 

 

 

 

 

myMail.Subject ="GOOD";

 

 

 

 

 

myMail.Body = "hello";

 

 

 

SmtpMail.SmtpServer = "SMTP.Yahoo.Com";

 

 

 

SmtpMail.Send(myMail);

 

 

 

statusLabel.Text = "Mail has been sent";

 

}

 

catch (Exception ee) { MessageBox.Show(ee.Message); }

 

 

 

-question by abdulkreem

Share this post


Link to post
Share on other sites
Great Job!C#.NET: Web Timer Control TutorialThanks. I created an Ajax Server Control and just dropped your code in and replaced what was generated. Worked the first time-reply by John Dalnes

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.