WebSurfer's Home

""

Button の識別

ページに複数配置された Button のどれがクリックされたかを Page_Load イベントで取得します。





Clicked Button ID: まだクリックされていません。

コードは以下のような感じです。

<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> protected void Page_Load(object sender, EventArgs e) { if (Page.IsPostBack) { NameValueCollection formCollection = Page.Request.Form; string[] controlNames = formCollection.AllKeys; foreach (string ctl in controlNames) { Control control = Page.FindControl(ctl); if (control is Button) { Label1.Text = ((Button)control).ClientID; break; } } } else { Label1.Text = "まだクリックされていません。"; } } </script> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:Button ID="Button1" runat="server" Text="Button1" /> <asp:Button ID="Button2" runat="server" Text="Button2" /> <asp:Button ID="Button3" runat="server" Text="Button3" /> <asp:Button ID="Button4" runat="server" Text="Button4" /> <asp:Button ID="Button5" runat="server" Text="Button5" /> <hr /> Clicked Button ID: <asp:Label ID="Label1" runat="server" /> </div> </form> </body> </html>