ASP.net Webフォームで、どのようなイベントが発生したのか(イベントハンドラ)をコード上で確認・取得する方法

概要

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"

コメントする

CAPTCHA