ASP.NET用户控件返回事件的原理及方法代码
ASP.NET 网页为 Web 应用程序带来了一种您熟悉的模型,该模型用于为客户端或服务器上发生的事件编写事件处理程序。ASP.NET 页框架对此模型进行了抽象,使捕获客户端上的事件、将其传输到服务器并调用适当方法等操作的基础机制都是自动的,并对于您都是不可见的。这样就得到了一个清晰的、易于编写的、支持事件驱动开发的代码结构。
asp.net用户控件一般适用于产生相对静态的内容,所以没有builtin的事件支持。本文讨论用户控件返回事件的方法。
假定用户控件(usercontrol.ascx)中包含按钮控件abutton,希望实现按abutton按钮时,包含该用户控件的页面可以接收到事件。为此,小鸡射手在用户控件和页面的代码中分别作了处理。
usercontrol.ascx.cs中的处理:
1. 定义public的事件委托,如clickeventhandler;
2. 在usercontrol类中声明事件,如click;
3. 在usercontrol类中定义引发事件的方法,如onclick()方法;
4. 在usercontrol类的相关方法中调用引发事件的方法,如在button_click()中调用onclick()。
核心代码示意如下:
public delegate void clickeventhandler(object sender, eventargs e);
public class myusercontrol : system.web.ui.usercontrol
{
protected system.web.ui.webcontrols.button abutton;
public event clickeventhandler click;
protected void onclick(eventargs e)
{
if (click!=null) click(this, e);
}
private void abutton_click(object sender, system.eventargs e)
{
this.onclick(e);
}
}
包含usercontrol的页面cs文件中的处理:
1. initializecomponent()中增加事件处理程序,采用findcontrol方法找到usercontrol;
2. 定义事件处理方法,在该方法中处理usercontrol的事件,如usercontrol_clicked()。
核心代码示意如下:
private void initializecomponent()
{
this.load += new system.eventhandler(this.page_load);
myusercontrol uc = this.findcontrol("myusercontrolid") as myusercontrol;
uc.click += new clickeventhandler(this.usercontrol_clicked);
}
private void usercontrol_clicked(object sender, system.eventargs e)
{
// usercontrol_clicked event hanlder
}
总结一下,其实就是将事件机制利用手工编程的方法加进去:加入一般控件ide自动生成的代码。顺便说一下,c#的事件机制实现了obeserver pattern,除了ui还可以用于业务层,能有效地降低对象间的耦合度,像usercontrol那样,根本无需知道包含它的页面对象是谁!
最新文章
- 客户端与服务器端对URL字符编码和解 [05-07]
- 高手过招 ASP.NET中防范SQL注入式攻 [12-25]
- ASP.NET2.0 AJAX中调用服务器Webse [11-29]
- ASP.NET中检测浏览器属性的方法及代 [11-29]
- ASP.NET2.0中Web Parts介绍及使用实 [11-29]
- 如何实现ASP.NET网站个性化的元素及 [11-24]
- 自定义控件把脚本文件编译为内嵌资 [11-24]
- ASP.NET2.0向其它网页传递信息的方 [11-24]
- 组合ASP.NET数据控件构建接口强大的 [11-24]
- Asp.net中创建类似Google自动感应的 [11-24]
推荐文章


热点文章
亲密接触ASP.Net(1-14)----站长强
ASP.NET中常用的优化性能方法详解
HTML图像热区基本介绍及实例代码
ASP.NET1.1中如何实现动态树实例
ASP.NET 2.0 ObjectDataSource控
Asp.Net时间格式转换方法
ASP.NET生成静态网页的方法
编程高手谈ASP.NET状态管理之客户
Asp.net页面之间跳转的三种方法比
ASP.NET的 Session 详解
深入分析编译asp.net 2.0项目到d
ASP.NET状态保存的方法详细介绍
ASP.NET性能优化-数据库方面的选
ASP.NET页面间传值方法大集会
实例:利用AJAX和ASP.NET实现简单
探讨ASP.NET的本质之IIS以及进程
ASP.NET用户控件返回事件的原理及
如何用ASP.NET 2.0主题控制网站外
ASP.NET性能优化-页面及控件
使用ASP.NET AJAX实现幻灯片效果
请慎用ASP.Net的validateRequest
ASP.NET2.0全新增加控件之ImageM
教你如何利用ASP.net编写发送Ema
完美教程:Asp.net如何导出pdf格式
ASP.NET2.0中CSS失效解决方案大集
结合工作经验总结asp.net几个常用
深入探讨ASP.NET实现回调实现的步
ASP.NET中如何实现通过对话框方式
asp.net数据校验部分的封装与应用
.NET用户控件基本使用及如何创建

