您现在的位置: 无忧电子商务网 >> 信息学院 >> 程序开发 >> asp.net >> 正文

ASP.net组件编程中的两种事件编写方法

作者:作者:未…    信息学院来源:网络收集    点击数:    更新时间:2006-8-28 我要参与讨论

  以下是组件代码:
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>");

[1] [2] 下一页

在google里搜索更多ASP.net组件编程中的两种事件编写方法

Google
Web www.51ec.org
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
我来说两句 对此文章发表了评论
  昵 称: *必填    ·注册用户·
  评 分: 1分 2分 3分 4分 5分     严禁发表危害国家安全、政治、黄色淫秽等内容的评论,用户需对自己在使用本网站服务过程中的行为承担法律责任。本站管理员有权保留或删除评论内容,评论内容只代表机友个人观点,与本网站立场无关。  
评 论
内 容

 
评论列表 (最新 评论仅限网友观点!)

供求信息




| 设为首页 | 加入收藏 | 关于我们 | 广告服务 | 联系方式 | 友情链接 | 版权申明