AutoEventWireup解释

AutoEventWireup解释这一事件聚合了当前页是否自动关联某些特殊事件。首先,从浏览器页面出发的事件不能立刻在本地得到处理,而是POST至服务器上,因此,asp.net建立了委托(代理)机制。在建立一个事件的同事,建立相应的委托。privatevoidInitializeComponent(){<spanstyle=”white-space:pre”> </span>t…

大家好,又见面了,我是你们的朋友全栈君。

这一事件聚合了当前页是否自动关联某些特殊事件。

首先,从浏览器页面出发的事件不能立刻在本地得到处理,而是POST至服务器上,因此,asp.net建立了委托(代理)机制。在建立一个事件的同事,建立相应的委托。

private void InitializeComponent()
{
<span style="white-space:pre">	</span>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()
{ 
<span style="white-space:pre">	</span>this.mybutton,Click += new System.EventHandler(this.Button1_Click);//委托
<span style="white-space:pre">	</span>this.Load += new System.EventHandler(this.Page_Load);//可以用AutoEventWireup属性避免的委托
}

</pre><pre name="code" class="html">private void Page_Load(object sender, System.EventArgs e)
{
//事件内容
}
private void Button1_Click(object sender, System.EventArgs e)
{ 
//事件内容
}

一定不可以在没有委托的情况下使用Page_Load类似的方法!

大部分情况下,页面不需要关联如此多的特殊事件,会增加额外的操作和系统开销。同时,ASP.NET页框架自动调用事件处理的方法基于其预定名称,这会导致到相同事件处理方法当页运行被调用连词,也会增大系统开销。因此,Microsoft建议始终将AutoEventWireup设置为Fasle。

AutoEventWireup 属性的缺点是它要求页事件处理程序具有特定的、可预测的名称。这就限制了在命名事件处理程序方面的灵活性。

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/PearlRan/p/4833029.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140066.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java开发手册之单元测试

    Java开发手册之单元测试Java开发手册之单元测试

    2022年4月22日
    39
  • 鸿蒙系统v30能用吗_v30pro升级鸿蒙系统使用感受

    鸿蒙系统v30能用吗_v30pro升级鸿蒙系统使用感受鸿蒙鸿蒙发布在gitee上https://gitee.com/openHarmony入门指导,以Hi3516DV300为例https://gitee.com/openharmony/docs/tree/master/quick-start搭建环境在ubuntu18.4上,环境搭建可参考gitee上的入门的指导,编译顺利通过后,回头重点理一下:安装Pythonsudoaptinstall-ypythonsudoaptinstall-ypython3下载编译工具w

    2022年9月16日
    0
  • PHP安装包TS和NTS的区别-Centos7 LANMP环境搭建(最完善版本)

    PHP安装包TS和NTS的区别-Centos7 LANMP环境搭建(最完善版本)

    2022年2月17日
    49
  • rabbitmq集群搭建(Linux)[通俗易懂]

    rabbitmq集群搭建(Linux)[通俗易懂]rabbitmq集群搭建(Linux)第一步:安装Erlang环境otp_src_20.1.tar.gzrabbitmq-server-generic-unix-3.7.4.tar需要的自提链接:https://pan.baidu.com/s/1WdBITXssCqU4CslnR8930A提取码:1phu安装依赖包1.yum-yinstallmakegccgcc-c++kernel-develm4ncurses-developenssl-devel编译安装(

    2022年9月10日
    0
  • MySQL中的数据类型_js中的数据类型

    MySQL中的数据类型_js中的数据类型主要介绍了mysql中的数据类型,主要介绍整数类型,浮点类型,日期类型。开发中每个表都会存在主键和更新时间,这时候选择那个数据类型作为主键也是很重要的,如果选择的数据类型太大会浪费空间,如果选择小了会影响后期开发。平时面试官也会问你那个数据类型作为主键最好。

    2022年9月19日
    1
  • HTTP状态500-内部服务器错误[通俗易懂]

    HTTP状态500-内部服务器错误[通俗易懂]SSM整合时出现的问题起初关注点一直在Mapper.xml上,CSDN查询解决方法大致在这样几种。1.SQL语句问题2.resultType返回类型问题(List集合中的参数类型)3.database.properties数据库配置文件问题(Mysql8以上加时区,文件多写了空格,少写了jdbc.)在看到Mysql8加时区这个解决方法时仔细观察了一下报错信息java.lang.ClassNotFoundException:com.mysql.cj.jdbc.Driver会不会是jar包问.

    2022年8月11日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号