龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

Asp.net定时控件

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
using System; using System.Web.UI; using System.Web.UI.WebControls; using System.ComponentModel;[assembly:TagPrefix("Beyondbit.App.Web.UI.WebControls", "BBit")] namespace Beyondbit.App.Web.UI.WebControls { #region ElapsedEventArgs class pub

using System;

  using System.Web.UI;

  using System.Web.UI.WebControls;

  using System.ComponentModel;[assembly:TagPrefix("Beyondbit.App.Web.UI.WebControls", "BBit")]

  namespace Beyondbit.App.Web.UI.WebControls

  { #region ElapsedEventArgs class

   public class ElapsedEventArgs : EventArgs

   {

   public int SignalTime;

   }

   #endregion

  

   ///

   /// 客户端定时器

   ///

   [DefaultProperty("Enabled"),

   ToolboxData("<{0}:ClientTimer runat=server>")]

   public class ClientTimer : System.Web.UI.Control , System.Web.UI.IPostBackEventHandler // , System.Web.UI.IPostBackDataHandler

   {

   public delegate void ElapsedEventHandler( object sender, ElapsedEventArgs e );

   public event ElapsedEventHandler Elapsed; protected virtual void OnElapsed( ElapsedEventArgs e)

   {

   if ( Elapsed != null )

   Elapsed(this, e);

   } private int signalTime = 0; private int interval = 0 ;

   [Description("设置或获取定时时间(毫秒)")]

   public int Interval

   {

   set

   {

   if( value <= 0 )

   throw new ArgumentException( "Interval时间间隔不能小于或等于0" );

   interval = value ;

   }

   get

   {

   return interval ;

   }

   } private bool enabled = false ;

   [Description("设置或获取定时器是否启用")]

   public bool Enabled

   {

   set{ enabled = value ; }

   get{ return enabled ; }

   } //public bool AutoReset = false ; [Description("停止定时器")]

   public void Stop()

   {

   enabled = false ;

   } protected override void OnPreRender(EventArgs e)

   {

   base.OnPreRender (e); if( this.enabled == false ) return; if( interval == 0 ) throw new ArgumentException( "定时器已启动,但Interval时间间隔没有设置" ); //js

   string jsId = this.UniqueID + "_js";

   string clientFunction = this.UniqueID + "_OnElapsed"; signalTime = signalTime + this.interval ; string js = " ";

  

Page.RegisterStartupScript( jsId , js ); } ///

   /// 将此控件呈现给指定的输出参数。

   ///

   /// 要写出到的 Html 编写器

   protected override void Render(HtmlTextWriter output)

   {

   //output.Write(Text);

   } #region IPostBackEventHandler 成员 public void RaisePostBackEvent( string eventArgument )

   {

   if( eventArgument == "" ) throw new Exception( "eventArgument参数为空!" );

   signalTime = int.Parse( eventArgument ) ; ElapsedEventArgs e = new ElapsedEventArgs();

   e.SignalTime = signalTime ; this.OnElapsed( e );

   } #endregion #region IPostBackDataHandler 成员// public void RaisePostDataChangedEvent()

  // {

  // // TODO: 添加 ClientTimer.RaisePostDataChangedEvent 实现

  // }

  //

  // public bool LoadPostData(string postDataKey, System.Collections.Specialized.NameValueCollection postCollection)

  // {

  // // TODO: 添加 ClientTimer.LoadPostData 实现

  //

  // string s = postCollection[ this.UniqueID + "_signalTime" ];

  // if( s == null s == "" ) return false;

  //

  // signalTime = Convert.ToInt32( s );

  //

  // return false;

  // } #endregion

   }

  }

  

  

精彩图集

赞助商链接