サーチ…


ライフサイクルイベント

ページのライフサイクルイベントは次のとおりです。

PreInit - PreInitはページライフサイクルの最初のイベントです。 IsPostBackプロパティをチェックし、ページがポストバックかどうかを判断します。テーマとマスターページを設定し、動的コントロールを作成し、プロファイルプロパティ値を取得および設定します。このイベントは、OnPreInitメソッドをオーバーライドするか、Page_PreInitハンドラを作成することで処理できます。

Init - Initイベントはコントロールプロパティを初期化し、コントロールツリーが構築されます。このイベントは、OnInitメソッドをオーバーライドするか、Page_Initハンドラを作成することで処理できます。

InitComplete - InitCompleteイベントにより、ビューの状態を追跡できます。すべてのコントロールがビューステートトラッキングを有効にします。

LoadViewState - LoadViewStateイベントにより、ビューステート情報をコントロールにロードできます。

LoadPostData - このフェーズでは、すべての入力フィールドの内容が定義され、タグが処理されます。

PreLoad - PreLoadは、ポストバックデータがコントロールに読み込まれる前に発生します。このイベントは、OnPreLoadメソッドをオーバーライドするか、Page_PreLoadハンドラを作成することで処理できます。

Load - 最初にページのLoadイベントが発生し、次にすべての子コントロールに対して再帰的にLoadイベントが発生します。コントロールツリーのコントロールが作成されます。このイベントは、OnLoadメソッドをオーバーライドするか、Page_Loadハンドラを作成することで処理できます。

LoadComplete - ロードプロセスが完了し、コントロールイベントハンドラが実行され、ページ検証が実行されます。このイベントは、OnLoadCompleteメソッドをオーバーライドするか、Page_LoadCompleteハンドラを作成することで処理できます

PreRender - PreRenderイベントは、出力がレンダリングされる直前に発生します。このイベントを処理することで、出力がレンダリングされる前に、ページとコントロールですべての更新を実行できます。

PreRenderComplete - すべての子コントロールに対してPreRenderイベントが再帰的に発生するため、このイベントはレンダリング前のフェーズの完了を保証します。

SaveStateComplete - ページ上のコントロールの状態が保存されます。パーソナライゼーション、コントロール状態、およびビュー状態情報が保存されます。 HTMLマークアップが生成されます。この段階は、Renderメソッドをオーバーライドするか、Page_Renderハンドラを作成することで処理できます。

UnLoad - UnLoadフェーズは、ページライフサイクルの最後のフェーズです。すべてのコントロールのUnLoadイベントを再帰的に、最後にページ自体に対して発生させます。最終的なクリーンアップが実行され、データベース接続などのすべてのリソースと参照が解放されます。このイベントは、OnUnLoadメソッドをオーバーライドするか、Page_UnLoadハンドラを作成することで処理できます。

コードの例

using System;

namespace myProject
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        public string PageSteps = string.Empty;

        //Raised after the start stage is complete and before the initialization stage begins.
        protected void Page_PreInit(object sender, EventArgs e)
        {
            PageSteps += "1 - Page_PreInit<br>";

            //Access to page Controls not available in this step
            //Label1.Text = "Step 1";
        }

        //Raised after all controls have been initialized and any skin settings have been applied.
        //The Init event of individual controls occurs before the Init event of the page.
        protected void Page_Init(object sender, EventArgs e)
        {
            PageSteps += "2 - Page_Init<br>";

            Label1.Text = "Step 2";
        }

        //Raised at the end of the page's initialization stage.
        //Only one operation takes place between the Init and InitComplete events: tracking of view state changes is turned on.
        //View state tracking enables controls to persist any values that are programmatically added to the ViewState collection.
        //Until view state tracking is turned on, any values added to view state are lost across postbacks.
        //Controls typically turn on view state tracking immediately after they raise their Init event.
        protected void Page_InitComplete(object sender, EventArgs e)
        {
            PageSteps += "3 - Page_InitComplete<br>";

            Label1.Text = "Step 3";
        }

        //Raised after the page loads view state for itself and all controls, and after it processes postback data that is included with the Request instance.
        protected override void OnPreLoad(EventArgs e)
        {
            PageSteps += "4 - OnPreLoad<br>";

            Label1.Text = "Step 4";
        }

        //The Page object calls the OnLoad method on the Page object, and then recursively does the same for each child control until the page and all controls are loaded.
        //The Load event of individual controls occurs after the Load event of the page.
        protected void Page_Load(object sender, EventArgs e)
        {
            PageSteps += "5 - Page_Load<br>";

            Label1.Text = "Step 5";
        }

        //Use these events to handle specific control events, such as a Button control's Click event or a TextBox control's TextChanged event.
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            //Step only visible on PostBack
            PageSteps += "6 - btnSubmit_Click<br>";

            Label1.Text = "Step 6";
        }

        //Raised at the end of the event-handling stage.
        protected void Page_LoadComplete(object sender, EventArgs e)
        {
            PageSteps += "7 - Page_LoadComplete<br>";

            Label1.Text = "Step 7";
        }

        //Raised after the Page object has created all controls that are required in order to render the page, including child controls of composite controls.
        //(To do this, the Page object calls EnsureChildControls for each control and for the page.)
        protected override void OnPreRender(EventArgs e)
        {
            PageSteps += "8 - OnPreRender<br>";

            Label1.Text = "Step 8";
        }

        //Raised after each data bound control whose DataSourceID property is set calls its DataBind method.
        protected override void OnPreRenderComplete(EventArgs e)
        {
            PageSteps += "9 - OnPreRenderComplete<br>";

            Label1.Text = "Step 9";
        }


        //Raised after view state and control state have been saved for the page and for all controls.
        //Any changes to the page or controls at this point affect rendering, but the changes will not be retrieved on the next postback.
        protected override void OnSaveStateComplete(EventArgs e)
        {
            PageSteps += "10 - OnSaveStateComplete<br><hr><br>";

            Label1.Text = "Step 10";
        }

        // Render
        //This is not an event; instead, at this stage of processing, the Page object calls this method on each control.
        //All ASP.NET Web server controls have a Render method that writes out the control's markup to send to the browser.

        //Raised for each control and then for the page.
        //Controls use this event to do final cleanup for specific controls, such as closing control-specific database connections
        protected void Page_UnLoad(object sender, EventArgs e)
        {
            //This last PageSteps addition will not be visible on the page
            PageSteps += "11 - Page_UnLoad<br>";

            //Access to page Controls not available in this step
            //Label1.Text = "Step 11";      
        }
    }
}

ライフサイクルのステップを視覚化するために、.aspxページに次のコードを追加します。

<b>Page Life Cycle Visualization:</b>
<br />
<%= PageSteps %>

ここに画像の説明を入力

詳しくは



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow