AutoEventWireup解释

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

首先,从浏览器页面出发的事件不能立刻在本地得到处理,而是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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值