ASPポストバックで発生するコントロールイベントを見つけることはできますか?

StackOverflow https://stackoverflow.com/questions/243120

  •  04-07-2019
  •  | 
  •  

質問

Page_Load ハンドラー内などで、発生する前に発生するコントロールイベントのリストを取得することは可能ですか?

たとえば、ボタンがクリックされた場合、 button_click イベントハンドラーが呼び出される前にこれを把握できますか?

役に立ちましたか?

解決

非常に難しい質問を選択しました...この理由は、イベントが発生する方法がいくつかあるためです。

1)__EVENTTARGET(上記のとおり) 2)ボタンの名前がMyButtの場合、" MyButt ="が表示されます。クエリ文字列内。 3)各コントロール(TextBoxなど)がリクエストをチェックして、ViewStateの値が送信された値と異なるかどうかを確認すると、" Text_Changed"発射します。

ただし、#1と#2を使用していくつかの場所を確認できます。

他のヒント

残念ながら、__ EVENTTARGETの値を調べてもうまくいきません。多くの場合、その値は空になります。ポストバック処理は、イベントターゲット値(存在する場合)以上に基づいて、どのイベントを発生させるかについていくつかの決定を行います。 。

実際にイベントハンドラーを、イベントをキャプチャするすべてのコントロールに接続することを除けば、それを決定する方法はないと思います。基本的にフレームワークが行うことを行うことが可能かもしれません。コントロールが作成されてからビューステートが復元されるまでの間、投稿された値が処理される前に、それを行う必要があります。現在のコントロール値(ビューステートから)と投稿された値を比較して、基本的に 発生するイベントを決定できます。

これでの目標は何ですか?おそらくもっと良い解決策があるでしょう。

以下には、ボタンをクリックしたときのボタンのマングルIDが含まれています。

Page.Request.Form["__EVENTTARGET"]

ここに例があります質問。

別の方法は、デバッグ時にブレークポイントを設定することです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top