この記事では、主に Asp.Net の WebFormライフサイクル に関する関連情報を紹介します。記事で紹介されているまさにその銀河は、それを必要とする友人が編集者をフォローするでしょう。そして勉強。
はじめに
この記事では、主に Asp.Net の WebForm ライフ サイクルに関する関連コンテンツを紹介します。詳細な紹介を見てみましょう。 1. Asp.Net ページのライフ サイクルの概念
ブラウザのアドレス バーに URL を入力し、Enter キーを押してページを表示すると、要求リクエストがサーバー側の IIS に送信され、サーバーがページが送信されると、TTP ページ ハンドラー クラスが完全に認識されると、ASP.NET ランタイムはハンドラーの ProcessRequest メソッドを呼び出して要求を処理し、ページ オブジェクトを作成します。通常、このメソッドは Page クラスによって提供されるため、実装を変更する必要はありません。次に作成されるページ オブジェクトの ProcessRequest メソッドは、初期化、ビュー ステート情報とポストバック データの読み込み、ページのユーザー コードの読み込み、ポストバック サーバー側イベントの実行といったさまざまな段階をページに実行します。その後、ページは表示モードに入ります。更新されたビューステートが収集され、HTML コードが生成されて、出力コンソールに送信されます。最後に、ページがアンロードされ、リクエストは完了したとみなされます。ページ オブジェクトの ProcessRequest メソッドによって完了するこの一連のイベントの処理が、Asp.Net ページのライフ サイクルです。
2. Asp.Net ページのライフ サイクルを理解する必要がある理由
Asp.Net ページのライフ サイクルを理解すると、開発者がライフ サイクルの適切な段階でプログラムを作成して望ましい結果を達成するのに役立つからです。さらに、カスタム コントロールを自分で開発したい場合は、コントロールを適切に初期化し、コントロールのプロパティにビュー 状態データを設定し、コントロールの動作コードを実行するには、ページのライフ サイクルをよく理解しておく必要があります。 。つまり、作成から最終的なアンインストールまでの一連の流れを知っていれば、開発はスムーズに進み、戸惑うことはありません。
1. ページのリクエスト: ページのリクエストは、ページのライフサイクルが始まる前に発生します。 2. 開始: 開始段階では、リクエストやレスポンスなどのページのプロパティが設定されます。この段階で、ページはリクエストがポストバックリクエストであるか新しいリクエストであるかを判断し、IsPostBack プロパティを設定します。
3. ページの初期化: ページの初期化中に、ページ内のコントロールを使用できるようになり、各コントロールの UniqueID 属性が設定されます。現在のリクエストがポストバック リクエストの場合、ポストバック データはまだロードされておらず、コントロール プロパティ値はビュー ステートの値にまだ復元されていません。 4. ページの読み込み: 読み込み中に、現在のリクエストがポストバック リクエストの場合、ビュー ステートとコントロール ステートから回復された情報を使用してコントロール プロパティがロードされます。 5. 検証: 検証中に、すべてのバリデーター コントロールの Validate メソッドが呼び出され、各バリデーター コントロールとページの IsValid プロパティが設定されます。 6. ポストバックイベント処理
: リクエストがポストバック リクエストの場合、すべてのイベント ハンドラーが呼び出されます。 7. ページのレンダリング: ページのレンダリング中に、ビュー ステートがページに保存され、ページは各コントロールを呼び出して、レンダリングされた出力をページの Response プロパティの OutputStream に提供します。 4. ライフサイクルイベント1. PreInit
このイベントを使用して、次の操作を実行します:ページを処理するのが初めてであるかどうかを判断するために、IsPostBack 属性を確認します。
動的コントロールを作成または再作成します。 メインコントロールページを動的に設定します。 テーマのプロパティを動的に設定します。設定ファイル
のプロパティ値を読み取るか、設定します。リクエストがポストバックリクエストの場合、コントロールの値はビューステートから復元されていません。この段階でコントロール プロパティが設定されている場合、その値は次のイベントでオーバーライドされる可能性があります。 2、Init
は、すべてのコントロールが初期化され、すべての外観設定が適用された後に発生します。このイベントを使用して、コントロールのプロパティを読み取りまたは初期化します。3. InitComplete
は Page オブジェクトによってトリガーされます。このイベントを使用して、最初にすべての初期化作業を完了する必要があるタスクを処理します。4. PreLoad
Load イベントの前にページまたはコントロールで処理を実行する必要がある場合は、このイベントを使用してください。
Page がこのイベントを発生させた後、それ自体とすべてのコントロールのビューステートを読み込み、Request インスタンスに含まれるポストバック データを処理します。
5. Load
Page は、Page で OnLoad イベント メソッドを呼び出し、このページとすべてのコントロールが読み込まれるまで、各子コントロールに対して同じ操作を再帰的に実行します。
OnLoad イベント メソッドを使用してコントロールのプロパティを設定し、データベース接続を確立します
6. コントロール イベント
これらのイベントを使用して、Button コントロールの Click イベントや TextChanged イベントなどの特定のコントロール イベントを処理します。 TextBox コントロールの。
注:
ポストバックリクエストで、ページに検証コントロールが含まれている場合は、処理を実行する前に、ページの IsValid プロパティと個々の検証コントロールを確認してください。
7. LoadComplete
このイベントは、ページ上の他のすべてのコントロールをロードする必要があるタスクに使用します。
8. PreRender
このイベントが発生する前に、
Page オブジェクトは各コントロールとページに対して EnsureChildControls を実行します。 DataSourceID プロパティが設定されているすべての
データ バインディングコントロールは、DataBind メソッドを呼び出します。詳細については、以下の「データ バインド コントロールのデータ バインド イベント」を参照してください。 PreRender イベントは、ページ上のすべてのコントロールに対して発生します。このイベントを使用して、ページまたはそのコントロールのコンテンツに最終的な変更を加えます。
9. SaveStateCompleteこのイベントが発生する前に、ページとすべてのコントロールの ViewState が保存されています。現時点でページまたはコントロールに加えられた変更は無視されます。
このイベントを使用して、ビューステートが保存されているがコントロールに変更が加えられていないことを必要とするタスクを実行します。
10. Renderこれは処理のこの段階ではイベントではなく、Page オブジェクトが各コントロールでこのメソッドを呼び出します。すべての ASP.NET Web サーバー コントロールには、ブラウザーに送信されるコントロール マークアップを書き込む Render メソッドがあります。
カスタム コントロールを作成する場合は、通常、このメソッドをオーバーライドしてコントロールのマークアップを出力します。ただし、カスタム コントロールに標準の ASP.NET Web サーバー コントロールのみが組み込まれ、カスタム タグが組み込まれていない場合は、Render メソッドをオーバーライドする必要はありません。詳細については、「カスタム ASP.NET サーバー コントロールの開発」を参照してください。
ユーザー コントロール (.ascx ファイル) はレンダリングのために自動的にマージされるため、コードでコントロールを明示的にレンダリングする必要はありません。
11. アンロードこのイベントは、まず各コントロールに対して発生し、次にページに対して発生します。コントロールでは、このイベントを使用して、コントロール固有のデータベース接続を閉じるなど、特定のコントロールで最終クリーンアップを実行します。
ページ自体については、このイベントを使用して、開いているファイルやデータベース接続を閉じる、ログ記録やその他のリクエスト固有のタスクを完了するなど、最終的なクリーンアップ作業を実行します。
注 アンロードフェーズでは、ページとそのコントロールはすでにレンダリングされているため、応答フローにこれ以上の変更を加えることはできません。メソッド (Response.Write メソッドなど) を呼び出そうとすると、ページは例外をスローします。
概要
以上がAsp.Net の WebForm のライフ サイクルを理解する_実践的なヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。