【ASP.NET】【C#?】PostBackイベントを発生元を調べる | demicadeのブログ

demicadeのブログ

iPhoneアプリ開発素人のメモ的なブログです。

demicadeです。

ASP.NET開発時に困ったPostback時のイベントの発生元の取得について。

多くのサイトには、下記のような形で取得できるとあるのですが、
どうも「AutoPostBack=true」じゃないと結果が""になる。う~ん。

string ctrlname = Page.Request.Params.Get("__EVENTTARGET");

そこで見つけたのが下記サイト。

http://aspadvice.com/blogs/joteke/archive/2004/08/05/2288.aspx

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

If DidControlCausePostBack(Button1.UniqueID) Then
Response.Write("Button1")
End If

If DidControlCausePostBack(LinkButton1.UniqueID) Then
Response.Write("LinkButton1")
End If

If DidControlCausePostBack(ImageButton1.UniqueID) Then
Response.Write("ImageButton1")
End If

End Sub

private bool DidControlCausePostBack(string uniqueID)
{

 

return (!(Request.Form[uniqueID] == null)) || (!(Request.Form["__EVENTTARGET"] == null) && Request.Form["__EVENTTARGET"].Equals(uniqueID)) || ((!(Request.Form[uniqueID + ".x"] == null)) && (!(Request.Form[uniqueID + ".y"] == null)));
}


サイトの記載はVB.NETですが、読み替えてやってください。
demicadeはめんどくさがりなので・・・。

これで解決!