2009-06-05 31 views
6

私はGridViewをかなり頻繁に使いますが、時には特定のコードを置く場所を混乱させることがあります。すべてのページイベントを含むイベントが発生する順序は何ですか?asp.net Gridviewコントロールで発生するイベントのシーケンスは何ですか?

編集:私は本当に、ページとGridViewの間に何が起こるかを理解しようとしています 。イベントはこれまでに交差していますか?または、すべてのページイベントが一度に発生した後、すべてのGridviewイベントが発生しますか? GridViewsだけでなく、すべてのコントロール - ほとんどの場合、ページとGridViewのやりとり。

+0

本当に、私の答えのようにすべてのイベントに対してSystem.Diagnostics.Debug.Writelineを追加してみてください。デザイン時にページにグリッドビューを追加しますが、実際にはPage_PreRenderでグリッドビューを追加してみてください。これは本当にあなたに何が起こっているの良い見解を与えるでしょう... – Ropstah

答えて

3
protected void GridView1_Load(object sender, EventArgs e) 
{ 
    System.Diagnostics.Debug.WriteLine("GridView1_Load"); 
} 
protected void GridView1_DataBinding(object sender, EventArgs e) 
{ 
    System.Diagnostics.Debug.WriteLine("GridView1_DataBinding"); 
} 
protected void GridView1_DataBound(object sender, EventArgs e) 
{ 
    System.Diagnostics.Debug.WriteLine("GridView1_DataBound"); 
} 
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    System.Diagnostics.Debug.WriteLine("GridView1_RowDataBound"); 
} 
+0

これはあなたが遭遇する他のクラスのために便利になります。このようにすることは、イベントが発砲していることを確かめることができます。マイクロソフトはそれは言う - しかし、あなたはどのように確かに知っていますか?笑 – Ropstah

7

あなたがページライフサイクルに参照のうえしている場合は、概要hereを見つけることができます。ライフサイクルの

概要は次のとおりです。

ページ要求

ページのライフサイクルが始まる前に、ページ要求が発生しました。ユーザーがページを要求すると、ASP.NETはページを解析してコンパイルする必要があるかどうかを判断し、ページの寿命を開始するかどうか、またはページを実行せずに応答としてキャッシュされたページを送信できるかどうかを判断します。

スタート

開始ステップでは、そのような要求と応答など、ページのプロパティが設定されています。この段階で、ページは要求がポストバックか新しい要求かを判断し、IsPostBackプロパティを設定します。さらに、開始ステップでは、ページのUICultureプロパティが設定されます。

ページの初期化

は、ページの初期化時には、ページ上のコントロールが利用可能であり、各コントロールのUniqueIDプロパティが設定されています。どのテーマもページに適用されます。現在の要求がポストバックの場合、ポストバックデータはまだロードされておらず、コントロールのプロパティ値はビューステートの値に復元されていません。

ロード

負荷時の電流要求がポストバックである場合、制御特性は、ビュー状態から回復された情報を用いてロードされ、状態を制御しています。

検証

検証中に、すべての検証コントロールのValidateメソッドは、個々の検証コントロールのとページのIsValidプロパティを設定する、と呼ばれています。

ポストバックイベントは、要求がポストバックであれば、任意のイベントハンドラが呼び出され

を扱います。レンダリングの前に

をレンダリング

は、ビューステートがページとすべてのコントロールのために保存されます。レンダリングフェーズでは、ページは各コントロールのRenderメソッドを呼び出し、その出力をページのResponseプロパティのOutputStreamに書き込むテキストライターを提供します。ページが完全にレンダリングされた後にアンロードと呼ばれる

アンロードは、クライアントに送信され、そして廃棄する準備が整いました。この時点で、ResponseやRequestなどのページプロパティはアンロードされ、クリーンアップが実行されます。

GridViewイベントについては、hereがあります。

関連する問題