概要
ASP.net Webフォームで、どのようなイベントが発生したのか(イベントハンドラ)をコード上で確認・取得する方法について説明します。
前提環境
- Windows 10
- Visual Studio Professional 2019
- .NET Framework 4.2
- C#
コードのポイント
Requestの添字「”__EVENTTARGET”」や「”__EVENTARGUMENT”」で確認することができます。
※ウォッチ式で確認する場合は注意が必要です。サンプルコードの下の解説を参照してください。
サンプルコード
string eventTarget = (string)Request["__EVENTTARGET"];
string eventArgument = (string)Request["__EVENTARGUMENT"];
// eventTargetの値は"gridView1"
// eventArgumentの値は"Select$1"
ウォッチ式で確認するときの注意事項
ウォッチ式で確認した場合の表示は以下のとおりです。
例として、GridViewで行を選択したときのものを簡単に示します。
__EVENTTARGETはRequestの直下には存在していないので注意してください。
添字ではRequest[“__EVENTTARGET”]なのに不思議です。。。何故なのかは調べていませんが、エイリアスでも設定されているのでしょう(適当)
Request
- Form
- _entriesArray
- [0]
- Key:"__EVENTTARGET"
- Value
- [0]:"gridView1"
- [1]
- Key:"__EVENTARGUMENT"
- Value
- [0]:"Select$1"