服务器控件开发 - 事件机制(3)
2008-07-04 16:27
176 查看
在上一篇的基础上, 我们来看看如何为我们的服务器控件添加事件支持。 丰富的事件支持能让控件的使用者最大限度的参与控件的生命周期,最大限度得提高控件的重用性。
每一个服务器控件都从Control基类继承了 OnInit, OnLoad, OnPreRender, and OnUnLoad 等 4 个事件. 在页面开发中, 开发人员可以通过2种方式来注册ASP.NET事件.
1. 通过声明的方式
<asp:Button id="button1" OnClick="button1_Click" Text="Submit" runat="server" />
2. 通过编程的方式
button1.Click += new EventHandler(this.button1_Click);
另外一点需要注意的是, 在Asp.net 2.0 里面. 页面模型自动将Page_Init, Page_Load, Page_PreRender, and Page_Unload 4 个方法绑定到页面对应的事件.
而不需要显式的声明. 这个特性是通过在页面声明中加入 AutoEventWireup="true" 来实现的. 如果发现页面不触发Page_Load 事件. 一个可能的原因就是
AutoEventWireup 的值被设为 False.
在C# 中 定义一个典型的事件代码如下:
public delegate void ClickEventHanlder(object sender, EventArgs e);
public event ClickEventHanlder OnClickEvent = null;
public void RaiseEvent()
Code
protected virtual void OnInit(EventArgs e) {
EventHandler initHandler = (EventHandler)Events[EventInit];
if (initHandler != null) {
initHandler(this, e);
}
}
最后 在页面的特定阶段触发事件, OnInit 事件的触发可以参考我第一篇当中的 InitRecursive方法
通过以上方式就可以任意的为我们的自定义控件添加事件。 而不需要去考虑任何的性能问题。
下一篇 : 服务器控件的 PostBack 机制。
每一个服务器控件都从Control基类继承了 OnInit, OnLoad, OnPreRender, and OnUnLoad 等 4 个事件. 在页面开发中, 开发人员可以通过2种方式来注册ASP.NET事件.
1. 通过声明的方式
<asp:Button id="button1" OnClick="button1_Click" Text="Submit" runat="server" />
2. 通过编程的方式
button1.Click += new EventHandler(this.button1_Click);
另外一点需要注意的是, 在Asp.net 2.0 里面. 页面模型自动将Page_Init, Page_Load, Page_PreRender, and Page_Unload 4 个方法绑定到页面对应的事件.
而不需要显式的声明. 这个特性是通过在页面声明中加入 AutoEventWireup="true" 来实现的. 如果发现页面不触发Page_Load 事件. 一个可能的原因就是
AutoEventWireup 的值被设为 False.
在C# 中 定义一个典型的事件代码如下:
public delegate void ClickEventHanlder(object sender, EventArgs e);
public event ClickEventHanlder OnClickEvent = null;
public void RaiseEvent()
Code
protected virtual void OnInit(EventArgs e) {
EventHandler initHandler = (EventHandler)Events[EventInit];
if (initHandler != null) {
initHandler(this, e);
}
}
最后 在页面的特定阶段触发事件, OnInit 事件的触发可以参考我第一篇当中的 InitRecursive方法
通过以上方式就可以任意的为我们的自定义控件添加事件。 而不需要去考虑任何的性能问题。
下一篇 : 服务器控件的 PostBack 机制。
相关文章推荐
- Asp.net控件开发学习笔记(八)----服务器控件事件
- ASP.NET2.0服务器控件开发之实现事件
- ★★★【庖丁解牛:纵向切入Asp.net 3.5控件和组件开发技术系列—(5)事件和数据回发机制】★★★
- 自定义服务器控件开发(2)--事件和事件处理
- ASP.NET2.0服务器控件开发之实现事件
- 【IOS 开发学习总结-OC-40】★★ios开发之事件机制——控件获取方式与事件处理方式
- ASP.NET2.0服务器控件开发之实现事件 [转]
- Asp.net控件开发学习笔记(八)----服务器控件事件
- Asp.net控件开发学习笔记(九)----服务器控件事件
- ASP.NET2.0服务器控件开发之实现事件
- 服务器控件开发—— PostBack机制(4)
- ASP.NET2.0服务器控件开发之实现事件
- .net组件开发系列之武术系列 武术招数 控件生命周期与控件事件机制
- Asp.net控件开发学习笔记(九)----服务器控件事件
- ASP.NET2.0服务器控件开发之实现事件
- ASP.NET2.0服务器控件开发之实现事件
- 服务端控件开发 包含处理机制—— 子控件中调用住空间委托的事件实例
- ASP.NET2.0服务器控件开发之实现事件
- 【转】Asp.net控件开发学习笔记整理篇 - 服务器控件事件
- 服务器控件开发 绑定事件