设为首页
加入收藏
繁體中文
首 页客家风情客家影音山歌在线客家商城聊天室留言墙测字算命下载中心IT 技术客家论坛
您当前的位置:客家网 | 天南地北客家人 -> IT 技术-> ASP -> 正文 退出登录 用户管理
栏目导航
· ASP · JSP
· 网络安全 · NET专区
· XML专区 · PHP专区
热门文章
· ASP+JavaScript的完整的..
· [图文] 防范非法用户的侵..
· ASP从数据库中获取文件..
· 网络管理中的常用命令
· [图文] 千年虫二世诞生业..
· [图文] FSO组件操作实例..
· 网络常见木马的手工清除..
· 利用ASP远程获取内容
· [图文] 简单购物车教程
· 一个ASP(VBScript)简..
· asp常用数据库连接方法..
· 网络常见木马的手工清除..
相关文章
· php和asp对象的等价关系..
· [图文] Classes and Obje..
· 十天学会ASP之第八天
· 十天学会ASP之第九天
· 十天学会ASP之第十天
· 在ASP中用集合成批操..
· 在ASP中用集合成批操..
· 关于Win2K3中利用ASP上传..
· ASP讲座之一:网页开发利..
· ASP讲座之二:读取通过表..
· ASP讲座之三:Applicati..
· ASP讲座之四:ASP内置组..
· ASP讲座之五:ASP组件(..
· ASP讲座之六:ASP与数据..
· ASP讲座之七:ASP与数据..
ASP.net组件编程中的两种事件编写方法
作者:风未起时  来源:中国站长学院  发布时间:2007-6-21 11:05:25  发布人:Admin

减小字体 增大字体

以下是组件代码:
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;

namespace NSEventStudy
{
 public delegate void TwoEventHandle(int flag);

 public class EventStudy : System.Web.UI.WebControls.WebControl
 {
 
  ///////////////第一种定义事件的方法////////////////////
 
  public event TwoEventHandle TwoEvent;

  public void Execute(int flag)
  {
   TwoEvent(flag);
  }

  ////////////////第二种定义事件的方法////////////////////
 
  private static object _Process = new object();
  public event TwoEventHandle ThreeEvent
  {
   add
   {
    Events.AddHandler(_Process,value);
   }
   remove
   {
    Events.RemoveHandler(_Process,value);
   }
  }

  public void InnerExecute(int flag)
  {
   TwoEventHandle handle = (TwoEventHandle)Events[_Process];
   if(handle != null)
   {
    handle(flag);
   }
   else
   {
    this.RaiseBubbleEvent(this,null);
   }
  }

  protected override void Render(HtmlTextWriter writer)
  {
   base.Render (writer);
   writer.WriteLine("我爱你,中国");
  }

 }
}


测试程序:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace TestEvent
{
 /// <summary>
 /// WebForm1 的摘要说明。
 /// </summary>
 public class WebForm1 : System.Web.UI.Page
 {
  protected System.Web.UI.WebControls.Button Button1;
  protected NSEventStudy.EventStudy EventStudy1;
 
  private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此处放置用户代码以初始化页面  
  }

  #region Web 窗体设计器生成的代码
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
   //
   InitializeComponent();
   base.OnInit(e);
  }
 
  /// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {   
   this.EventStudy1.ThreeEvent += new NSEventStudy.TwoEventHandle(this.EventStudy1_ThreeEvent);
   this.EventStudy1.TwoEvent += new NSEventStudy.TwoEventHandle(this.EventStudy1_TwoEvent);
   this.Button1.Click += new System.EventHandler(this.Button1_Click);
   this.Load += new System.EventHandler(this.Page_Load);

  }
  #endregion

  private void EventStudy1_TwoEvent(int flag)
  {
   this.Response.Write("<script>javascript:alert('TwoEvent事件触发')</script>");
  }

  private void EventStudy1_ThreeEvent(int flag)
  {
   this.Response.Write("<script>javascript:alert('ThreeEvent事件触发')</script>");
  }

  private void Button1_Click(object sender, System.EventArgs e)
  {
   this.EventStudy1.Execute(6);
   this.EventStudy1.InnerExecute(10);
  }
 }
}


[] [返回上一页] [打 印] [收 藏]
下一篇文章:连接数据库查询手册
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论…]
关于本站 - 网站合作 - 免责声明 - 友情连接 - 网站地图 - 客家论坛
本站部份内容来自网络 如无意中侵犯了您的权利 请及时与我们联系 我们会尽快处理
Copyright © 2006-2008 天南地北客家人
Email:yddlts@126.com  QQ:153161602
站长:大浪淘沙    QQ群:33754730
粤ICP备07019796号