使用Asp.NET时,新建的aspx页面第一行page指令中包含了一个AutoEventWireup属性。网上的很多教程认为这一属性,甚至这一行代码都是没用的。其实,这是不了解Asp.NET事件处理模型的表现。简单来说,这一属性决定了当前页是否自动关联某些特殊事件。

首先,从浏览器页面触发的事件不能立刻在本地得到处理,而是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",则代码应改为:

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)
   {
    // 事件内容
   }

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属性的确切含义相关推荐

  1. 关于信噪比的确切含义——Eb/No和SNR的区别

    SNR:信号功率与噪声功率之比,这在模拟通信时,很合适做度量指标,但在数字通信中就不太合适 Eb/No:Eb(焦耳/比特),No(瓦特/赫兹),适合用作数字通信衡量系统性能的指标 SNR和Eb/No: ...

  2. Objective-C中变量采用@property的各个属性值的含义

    我们在OC中定义变量,可以自己来定义变量的setter方法来设置变量值,用getter方法来获取变量值.但是当变量数量增多时,还采用手动添加setter/getter方法来操作变量,就会使得程序代码量 ...

  3. vertical-align 各个属性值的含义

    vertical-align 各个属性值的含义 注意:vertical-align 属性不继承 有关基线.行内框.行框.内容区.行距的 定义 vertical-align: baseline vert ...

  4. Orcad的occurrence属性与instance属性是什么含义?

    Orcad的occurrence属性与instance属性是什么含义呢? 答:通常我们在编辑元件属性的时候会看到这样的界面,如图3-147所示,最直观的定义,白色的是"Instance&qu ...

  5. 40隐式构造函数和隐式转换,还有explicit关键词的确切含义【C++学习笔记】

    40隐式构造函数和隐式转换,还有explicit关键词的确切含义 隐式的意思是:不会明确地告诉你它要做什么,它有点像在某种情况下自动的工作 隐式转换 double a = 0.5; int b = a ...

  6. target属性值的含义

    target属性值的含义: _blank:新建窗口 _self:相同窗口 _parent:父窗口 _top:首窗口 例子: window.open('url','_self'); <a href ...

  7. AutoEventWireup 属性的作用(转载)

    AutoEventWireup 属性的作用(转载) 一.Page指令中的AutoEventWireup="true",该指令默认值为true. 指示页的事件是否自动绑定.如果启用了 ...

  8. AutoEventWireup属性

    使用ASP.NET时,新建的aspx页面第一行page指令中包含了一个 AutoEventWireup属性,这一属性决定了当前页是否自动关联某些特殊事件.如果启用了事件自动绑定,则为 true:否则为 ...

  9. 小议AutoEventWireup属性

    1.在web 页面添加一个label和button控件 View Code <%@ Page Language="C#" AutoEventWireup="fals ...

最新文章

  1. ios 不被遮挡 阴影_解决ios10导航栏底部阴影线条隐藏失效问题
  2. 关于计算机软件系统分类能够匹配的有,以下关于计算机软件系统分类能够匹配的有:...
  3. Openssl更新步骤
  4. Docker技术入门与实战 第二版-学习笔记-2-镜像构建
  5. 2015-2016 XVI Open Cup, Grand Prix of Bashkortostan, SKB Kontur Cup Stage 2
  6. 单向链表的简单Java实现-sunziren
  7. linux修改ip dhcp,Linux下在静态IP与动态DHCP之间切换的脚本
  8. Web前端工作笔记012---IE8兼容_WebSocket
  9. vista的启动修复........
  10. Mysql Sql语句令某字段值等于原值加上一个字符串
  11. java服装销售系统课程设计_毕业论文(设计)基于javaweb的服装销售管理系统的设计与实现.doc...
  12. 两种方法解除网页复制限制
  13. RK3588超强8K视频输出NRV边缘计算盒 AI人工智能
  14. 汇编_stack的使用
  15. 有趣!用太极拳讲分布式理论,真舒服!
  16. secureCRT无限循环脚本
  17. 前端网页打印window.print()
  18. 信息系统安全实验(一):InterNIC、Nslookup、Sam spade、Nmap、Nessus的使用
  19. 移动端300ms延迟的由来及解决方案
  20. 10种网站数据的采集方法

热门文章

  1. 产品经理洞察:到2025年即服务的变化情况
  2. hacker.pcapng解析
  3. ISME Commun:RNA-seq助力发现菌群收敛新机制
  4. 获取热血江湖怪物信息的DELPHI2010源代码
  5. Easyx-----c++复刻新斗兽棋
  6. 10-247 6-10 查询所有生产打印机的厂商生产的PC的硬盘平均容量
  7. 张兴个人简历计算机,张兴-合肥工业大学电气与自动化工程学院
  8. matlab利用滑动条控制图片二值化阈值
  9. 计算机软件怎么弄,电脑程序软件怎么设置快捷键
  10. 通过脚本来实现音频的播放