Page_を追加Initイベント

2276 ワード

コード・ページには、デフォルトでPage_があります.Load()関数:
public partial class _Default : System.Web.UI.Page 

{

    protected void Page_Load(object sender, EventArgs e)

    {



    }

}

このロジックに従って、Page_を追加します.Init()、Page_PreInit()メッセージ応答関数は、次のとおりです.
public partial class _Default : System.Web.UI.Page

{

    protected void Page_PreInit(object sender, EventArgs e)

    {

        Response.Write("Page_PreInit ");

        Response.Write("<br />");

    }



    protected void Page_Init(object sender, EventArgs e)

    {

        Response.Write("Page_Init ");

        Response.Write("<br />");

    }



    protected void Page_Load(object sender, EventArgs e)

    {

        Response.Write("Page_Load ");

        Response.Write("<br />");

    }

}

このデフォルトのPage_Load()は古いASPの世話をしているはずです.NETプログラマーが慣れる方法.この方法で追加すると、完全に手動で入力し、入力中にスマートなヒントがなく、エラーが発生しやすいです.
 
この時、Page_Init()とPage_PreInit()は、実際にはクラスPageのメッセージ応答関数であり、私たちはPageの派生クラスである.Default.aspxではこの2つの関数を使用します.
はい.NET 2.0では、イベントの設計には、イベントが派生クラスに使用されている場合、protected virtual/override On{EventName}の形式で派生クラスに露出し、派生クラスがoverrideを通じてイベントを受け入れるようにすることを提案しています.イベントが外部クラスに使用されている場合は、古いpublic event{EventName}によって暴露されます.
だから、ASP.NET 2.0では、protected override OnInit方式でInit()とPreInit()を実現した方がよい.
override+スペースを直接入力すると、プロンプトが表示されます.このプロンプトに従って、追加したPage_Init()、Page_PreInit()関数は次のようになります.
public partial class _Default : System.Web.UI.Page 

{

    protected override void OnPreInit(EventArgs e)

    {

        Response.Write("Page_PreInit ");

        Response.Write("<br />");



        base.OnPreInit(e);

    }

    protected override void OnInit(EventArgs e)

    {

        Response.Write("Page_Init ");

        Response.Write("<br />");



        base.OnInit(e);

    }

    protected override void OnPreLoad(EventArgs e)

    {

        Response.Write("Page_Load ");

        Response.Write("<br />");



        base.OnPreLoad(e);

    }

}

もちろん、Page_についてはロード事件、彼がPageを置いた以上Load()あげるから、それでいいよ.偏執狂でなければ、protected override void OnPreLoad(EventArgs e)に変更する必要はありません.