2009-07-04 6 views
0

質問は簡単ではないようですが、私はGoogleで答えを見つけられませんでした。asp.netでイベントを発生させる順序をどのように管理しますか?

ウェブフォームに複数の独立したコントロールがある場合(例: DropDownListsとgridを使用すると、別のイベントハンドラで1つのイベントハンドラからポストバック情報を使用する必要があります。したがって、別のイベントハンドラでポストバック情報を使用する必要があります。

これを行うための間接的な方法がたくさんありますが、カスタムイベントを上げるなどしていますが、それを行うにはもっと簡単で簡単な方法がありますか?

UPD:あるコントロールのポストバック情報を別のコントロールで使用する必要がある場合。 RadGrid.NeedDataSourceデータバインディングハンドラのdropdownlist.SelectedValue - それを送信する通常の方法は何ですか?

答えて

1

私が知る限り、ASP.Netのデフォルトのイベント発生メカニズムは、いかなる順序も保証しません。だからあなたはそれに依存しないようにあなたのプログラムフローを設計すべきです。あなたが正確な要件を言える場合は、それが考えられるかもしれません。

4

残念ながら、発射命令に依存するイベントハンドラを構築するべきではありません。これは推奨される方法ではありません。 ASP.NET Web Server Control Event Modelから:

あなたは ページイベント処理の詳細な知識をしていない限り が特定の順序 に提起された変更イベントに依存するアプリケーション ロジックを作成しないでください。詳細は ASP.NET Page Life Cycle Overviewを参照してください。

これに頼っていると、おそらくデザインに欠陥があります。詳細を投稿すると、その周辺を救う手助けができるかどうかがわかります。

編集::私は以前RadGridを使っていましたが、NeedDataSourceイベントの正確な目的を覚えていません。ドロップダウンリストを変更したら自動的にポストバックし、イベントハンドラでグリッドのDataSourceを適切なソースに設定し、DataBind()をコールするだけで十分でしょうか?

+0

よく、特定の場合について議論するのは複雑です。私はポストバックを必要としないajaxified radgridを作ったので、まっすぐな方法がないことを知りました。しかし、依然として主要な質問には答えられていません - 別のハンドラの1つ(または複数)のハンドラからのポストバック情報を使用できますか?答えが「いいえ」の場合、最も簡単な回避策は試してはいけません。 – rudnev

0

1つのイベントハンドラが別のイベントハンドラの結果に依存する場合、概念的にはそれが応答している「イベント」は最初のイベントの完了です。私はあなたがカスタムイベントを起こしたり、メソッドのチェーンを手動で適切に呼び出すことができないと思います。

関連する問題