|
|
|
|
ASP.net组件编程中的两种事件编写方法 |
作者:编辑整理 来源:帝网科技 日期:2008年09月11日 点击数: |
以下是组件代码:
usingSystem; usingSystem.Web.UI; usingSystem.Web.UI.WebControls; usingSystem.ComponentModel;
namespaceNSEventStudy { publicdelegatevoidTwoEventHandle(intflag);
publicclassEventStudy:System.Web.UI.WebControls.WebControl {
///////////////第一种定义事件的方法////////////////////
publiceventTwoEventHandleTwoEvent;
publicvoidExecute(intflag) { TwoEvent(flag); }
////////////////第二种定义事件的方法////////////////////
privatestaticobject_Process=newobject(); publiceventTwoEventHandleThreeEvent { add { Events.AddHandler(_Process,value); } remove { Events.RemoveHandler(_Process,value); } }
publicvoidInnerExecute(intflag) { TwoEventHandlehandle=(TwoEventHandle)Events[_Process]; if(handle!=null) { handle(flag); } else { this.RaiseBubbleEvent(this,null); } }
protectedoverridevoidRender(HtmlTextWriterwriter) { base.Render(writer); writer.WriteLine("我爱你,中国"); }
} } | 测试程序:
usingSystem; usingSystem.Collections; usingSystem.ComponentModel; usingSystem.Data; usingSystem.Drawing; usingSystem.Web; usingSystem.Web.SessionState; usingSystem.Web.UI; usingSystem.Web.UI.WebControls; usingSystem.Web.UI.HtmlControls;
namespaceTestEvent { /// ///WebForm1的摘要说明。 /// publicclassWebForm1:System.Web.UI.Page { protectedSystem.Web.UI.WebControls.ButtonButton1; protectedNSEventStudy.EventStudyEventStudy1;
privatevoidPage_Load(objectsender,System.EventArgse) { //在此处放置用户代码以初始化页面 }
#regionWeb窗体设计器生成的代码 overrideprotectedvoidOnInit(EventArgse) { // //CODEGEN:该调用是ASP.NETWeb窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); }
/// ///设计器支持所需的方法-不要使用代码编辑器修改 ///此方法的内容。 /// privatevoidInitializeComponent() { this.EventStudy1.ThreeEvent+=newNSEventStudy.TwoEventHandle(this.EventStudy1_ThreeEvent); this.EventStudy1.TwoEvent+=newNSEventStudy.TwoEventHandle(this.EventStudy1_TwoEvent); this.Button1.Click+=newSystem.EventHandler(this.Button1_Click); this.Load+=newSystem.EventHandler(this.Page_Load);
} #endregion
privatevoidEventStudy1_TwoEvent(intflag) { this.Response.Write(""); }
privatevoidEventStudy1_ThreeEvent(intflag) { this.Response.Write(""); }
privatevoidButton1_Click(objectsender,System.EventArgse) { this.EventStudy1.Execute(6); this.EventStudy1.InnerExecute(10); } } } |
|
|
|
|
|
|
|