3

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

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

4

4 に答える 4

2

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

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

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

于 2008-10-30T00:49:20.253 に答える
2

残念ながら、__EVENTTARGET 値を調べてもうまくいきません。多くの場合、その値は空になります。ポストバック処理では、イベント ターゲット値 (存在する場合) だけでなく、フォームによってポストされた値 (テキスト ボックスなど) に対するコントロール状態値のテストに基づいて、どのイベントを発生させるかについていくつかの決定を行い、TextChanged などのイベントを発生させるかどうかを決定します。 .

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

これであなたの目標は何ですか?おそらく、より良い解決策があります。

于 2008-10-30T00:39:58.293 に答える
0

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

Page.Request.Form["__EVENTTARGET"]
于 2008-10-28T12:59:31.920 に答える
0

これがあなたの質問に答えると私が信じている例です。

もう 1 つの方法は、デバッグ時にいくつかのブレークポイントを設定することです。

于 2008-10-29T19:11:31.403 に答える