ホームページ  >  記事  >  バックエンド開発  >  Asp.NET ページ イベントが読み込まれる順序は何ですか?

Asp.NET ページ イベントが読み込まれる順序は何ですか?

巴扎黑
巴扎黑オリジナル
2017-08-06 09:38:371822ブラウズ

この記事では、Asp.NET ページでのイベントの読み込みシーケンスについて、画像、テキスト、サンプル コードを通じて詳しく紹介します。必要な方はこの手順に従ってください。以下で一緒に学びましょう。

この記事では、主に Asp.NET ページ イベントの読み込みシーケンスに関する関連コンテンツを紹介し、参考と学習のために共有します。早速、

ASP の詳細な概要を見てみましょう。レイアウト ページとコンテンツ ページの NET Mother イベント

マスター ページとコンテンツ ページの両方にコントロールのイベント ハンドラーを含めることができることはわかっています。コントロールの場合、コンテンツ ページのコントロールはコンテンツ ページでイベントを発生させ、マスター ページのコントロールはマスター ページでイベントを発生させます。コントロール イベントはコンテンツ ページからマスター ページには送信されません。また、マスター ページ コントロールからのイベントはコンテンツ ページでは処理できず、独自のイベント内でのみ処理されます。

マスター ページ (Master) とコンテンツ ページ (ContentPage) がマージされた後のイベントの順序は次のとおりです:


Master页面控件 Init 事件。
ContentPage页面控件 Init 事件。
Master页  Init 事件。
ContentPage页 Init 事件。
ContentPage页 Load 事件。
Master页  Load 事件。
ContentPage页面控件 Load 事件。
ContentPage页面 PreRender 事件。
Master页面  PreRender 事件。
Master页面控件 PreRender 事件。
ContentPage页面控件 PreRender 事件。

マスター ページとコンテンツ ページのイベントの順序はページにとって重要ではありません開発者。ただし、特定のイベントの可用性に依存するイベント ハンドラーを作成する場合は、マスター ページとコンテンツ ページでのイベントの順序を理解すると役立ちます。

Asp.Net でのページ イベントの読み込みシーケンス

1。単一のページが実行されると、イベントは次の順序でアクティブ化されます:


Page.PreInit
Page.Init
Page.InitComplite
Page.PreLoad
Page.Load
Page.LoadComplete
Page.PreRender
Page.PreRenderComplete

2。 BasePage:System.Web.UI.Page などのページでは、ログインしているかどうか、権限があるかどうかなどの検証機能が BasePage に追加されており、他のページは BasePage を継承しており、BasePage と最終ページのイベント アクティベーション シーケンスは次のようになります。 :


BasePage.PreInit
Page.PreInit
BasePage.Init
Page.Init
BasePage.InitComplite
Page.InitComplite
BasePage.PreLoad
Page.PreLoad
BasePage.Load
Page.Load
BasePage.LoadComplete
Page.LoadComplete
BasePage.PreRender
Page.PreRender
BasePage.PreRenderComplete
Page.PreRenderComplete

3. MasterPage が削除された場合、MasterPage 内のイベントと ContentPage 内のイベントが次の順序でアクティブ化されることに注意してください。マスター内の PreInit イベントではありません。


4. ContentPage が BasePage を継承する場合、各イベントの実行順序は次のようになります:

ContentPage.PreInit
Master.Init
ContentPage.Init
ContentPage.InitComplite
ContentPage.PreLoad
ContentPage.Load
Master.Load
ContentPage.LoadComplete
ContentPage.PreRender
Master.PreRender
ContentPage.PreRenderComplete

継承されたページに継承がある場合は、最初に継承されたページをロードし、次にそれ自体をロードすることを覚えておいてください。最初に継承ページの継承をロードします。


イベントハンドラ名

発生時刻

Page_InitWebフォームのビューステートにサーバーコントロールをロードし、初期化します。 これはフォームのライフサイクルの最初のステップです Page_Load は、サーバー コントロールを Page オブジェクトに読み込みます。この時点でビュー ステート情報が利用できるため、ここでコードを使用してスペースの設定を変更したり、ページにテキストを表示したりできます。 Page_PreRenderアプリケーションはページをレンダリングしようとしていますページがメモリからアンロードされます未処理の例外が発生しましたトランザクション終了トランザクションが受け入れられましたPage_CommitTransaction サーバースペースとデータソースがバンドルされていますページオブジェクトがメモリから解放されます。これは、Page オブジェクトのライフサイクルの最後のイベントです

Init、Load、PreRender イベントの実行シーケンス:

1) コントロールの Init イベント

2) コントロールが配置されているページの Init イベント

3) コントロールが配置されているページの Load イベントが配置されています

4) Control Load イベント

5) コントロールが配置されているページの PreRender イベント

6) コントロールの PreRender イベント

個人的な調査によるいくつかの経験: (次の 2 つの点は、自作のページを構築して関連イベントを書き換えることで確認できます)

1. Init イベントは、最も内側のコントロール (ユーザー コントロールなど) から最も外側のコントロール (ページ) まで、および Load や PreRender などのその他のイベントが発生します。最も外側のコントロールから最も内側のコントロールまで引き上げられます。

2. コントロール間の同じイベントの実行順序は、ページ上のコントロールの位置に応じて、左から右、上から下になります。

注:

1. ユーザー コントロールは、ページ上のコントロールとしてもみなされることに注意してください。

2. ユーザー コントロール自体とそれに含まれるものを別の特別なページとして表示します。同じルールに従います。

3. クライアント本体オブジェクトの onload イベントがクライアント プログラム (JavaScript など) で使用されている場合、このクライアント イベントは最後に実行される、つまりサーバー側のすべてのイベントが終了した後に実行されることに注意してください。処刑された。

4. Master およびユーザー定義コントロールには PreInit イベントと OnComplete イベントはありません。Master 自体はユーザー コントロールの usercontrol であり、usercontrol は TemplateControl を継承し、TemplateControl は Control を継承します。Control の書き換え可能なイベントを見てみましょう (部分的)。スクリーンショット)、この公式ドキュメントも参照できます: https://referencesource.microsoft.com/#System.Web/UI/Control.cs,87dbac93d9749fa2。


Page_Unload

Page_Error

Page_AbortTransaction

Page_CommitTransaction

Page_DataBinding

Page_Disowned

以上がAsp.NET ページ イベントが読み込まれる順序は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。