领悟@Page指令中的AutoEventWireup

  Asp.NET中可以修改AutoEventWireup="true",使页面与某些特殊的事件方法绑定,自动识别这些具有特定名称的事件,而不需要进行委托。这些特定名称包括:Page_Init, Page_Load, Page_DataBind, Page_PreRender和Page_Unload等。

 

 

.aspx设置AutoEventWireup=false情况下,Page_Load方法没有办法成为Load事件的订阅者,

我们必须手工进行相应的subscribe,不然我们就看不到输出的hello.

 

<%@ Page Language="C#" AutoEventWireup="false" CodeFile="Default.aspx.cs" Inherits="_Default" %>

 

public partial class _Default : System.Web.UI.Page

{

    protected override void OnInit(EventArgs e)

    {

        base.OnInit(e);

        this.Load += this.Page_Load;

    }

 

    protected void Page_Load(object sender, EventArgs e)

    {

        Response.Write("hello");

    }

}

 

 

从这个简单例子,可以看出AutoEventWireup=true时候像Page_xx都成为了保留方法了。

 

一、Page指令中的AutoEventWireup="true",该指令默认值为true.

     指示 页的事件 是否自动绑定。如果启用了事件自动绑定,则为 true;否则为 false。默认值为 true
     页的事件的绑定

     ASP.NET 页会引发诸如 Init Load PreRender 等生命周期事件。默认情况下,可以使用 Page_事件名称的命名约定将页事件绑定到方法。例如,若要为页的 Load 事件创建处理程序,可以创建名为 Page_Load 的方法。编译时,ASP.NET 将查找基于此命名约定的方法,并自动执行事件与方法之间的绑定。可以对 Page 类公开的任何事件使用 Page_事件名称的约定。
     AutoEventWireup 属性的缺点是它要求页事件处理程序具有特定的、可预测的名称。这就限制了在命名事件处理程序方面的灵活性。

    注意:

   如果包括页事件的显式绑定,请确保将 AutoEventWireup 属性设置为 false,以便方法不会意外地被调用两次。

      页事件的显式绑定:
       ( AutoEventWireup 属性设置为 false时,将不会按命名约定去调用Page_Load方法,这时需要我们显示定)
    public partial class _Default : System.Web.UI.Page
    {
        
public  _Default()
        {
            
this .Load  +=   new  EventHandler(Page_Load);
        }
        
protected   void  Page_Load( object  sender, EventArgs e)
        {
        }
    }

原文地址:http://www.cnblogs.com/ycdx2001/archive/2009/07/19/1526739.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值