对AutoEventWireup的一点补充
来源:互联网 发布:淘宝美工培训学校 编辑:程序博客网 时间:2024/04/28 14:41
在网上看到一篇文章:关于AutoEventWireup的帖子. asp.net(AutoEventWireup属性的确切含义) ,按文章上说的做了,出了些问题,后来经过学习得到了一点进步。
文章正文如下:(红色的部分是我添加的)
首先,从浏览器页面触发的事件不能立刻在本地得到处理,而是POST至服务器上,因此,Asp.NET建立了委托(代理)机制。在建立一个事件的同时,建立相应的委托:
private void InitializeComponent()
{
this.mybutton.Click += new System.EventHandler(this.Button1_Click);//委托
}
private void Button1_Click(object sender, System.EventArgs e)
{
//事件内容
}
委托将事件与该页面显式关联。在AutoEventWireup="false"时,如果没有委托,事件将不执行。
这与早期VB采用的隐式事件挂起截然不同,各有利弊。但,Asp.NET中可以修改AutoEventWireup="true",使页面与某些特殊的事件方法绑定,自动识别这些具有特定名称的事件,而不需要进行委托。这些特定名称包括:Page_Init, Page_Load, Page_DataBind, Page_PreRender和Page_Unload等。比如:
private void Page_Load(object sender, System.EventArgs e)
{
// 事件内容
}
针对这些事件方法,开发人员可以利用该参数避免编写过多的链接代码。如果该属性设置为"false",则代码应改为:
protected override void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
} //注:不加这一段代码,那么程序运行后不会在屏幕上看到 要输出的作息:sfld
private void InitializeComponent()
{
this.mybutton.Click += new System.EventHandler(this.Button1_Click);//委托
this.Load += new System.EventHandler(this.Page_Load);//可以用AutoEventWireup属性避免的委托
}
private void Page_Load(object sender, System.EventArgs e)
{
// 事件内容
this.Response.Write("sfld");
}
private void Button1_Click(object sender, System.EventArgs e)
{
//事件内容
}
一定不可以在没有委托的情况下使用Page_Load类似的方法!
大部分情况下,页面不需要关联如此多的特殊事件,会增加额外的操作和系统开销。同时, ASP.NET 页框架自动调用事件处理的方法基于其预定名称,这会导致到相同事件处理方法当页运行被调用两次,也会增大系统开销。因此,Microsoft 建议始终将 AutoEventWireup 设置为 FALSE。
@ Page指令的说明:
http://msdn2.microsoft.com/en-us/library/ydy4x04a(vs.71).aspx
ASP.NET 服务器控件事件模型
http://msdn2.microsoft.com/en-us/library/59t350k3(vs.71).aspx
- 对AutoEventWireup的一点补充
- 对HOOK注入的一点补充!
- 对CodeSmith + netTiers 生成DAL的一点补充
- 对《Ext2.0 form使用实例》的一点补充
- 对《Ext2.0 form使用实例》的一点补充
- 对贾涛游标定位行的一点补充
- 对CodeSmith + netTiers 生成DAL的一点补充
- Android多媒体分析(六)对AudioManager的一点补充
- Android多媒体分析(六)对AudioManager的一点补充
- Android多媒体分析(六)对AudioManager的一点补充
- 对自动完成文本框(AutoCompleteTextView)组件的一点补充
- Android多媒体分析(六)对AudioManager的一点补充
- Android多媒体分析(六)对AudioManager的一点补充
- Android多媒体分析(六)对AudioManager的一点补充
- 对《浅谈PCA 人脸识别》的一点补充
- git 的一点补充
- AutoEventWireup 的意义
- 关于Ajaxpro的一点补充
- 使用google日历功能,无法获得验证码 怎么办
- Computer net
- WAV头格式分析
- C#实用小技巧
- 原来倒霉的事总是成双结队的
- 对AutoEventWireup的一点补充
- javascript(必须输入关键字才能点击成功)
- BCB生成的Exe文檔,在vista下面雙擊執行,為什麼沒有彈出uac的權限詢問框
- 一个小细节让我整了一下午
- 修改MAC地址的原理
- webBrowser加载Word,以及保存
- 软件开发过程包括哪几个阶段
- 我的简史——Web应用开发之路(四)
- IT 常用英语单词 实用 常用 管用~!