方法 : クライアント スクリプトで Button Web サーバー コントロール イベントに応答する
更新 : 2007 年 11 月
ボタン コントロールはサーバー イベントとクライアント イベントの両方を発生させることができます。サーバー イベントはポストバックの後で発生し、これらはページに対して記述するサーバー側コードで処理されます。クライアント イベントは、クライアント スクリプト、通常は JavaScript (ECMAScript) で処理され、ページが送信される前に発生します。ASP.NET ボタン コントロールにクライアント側のイベントを追加することによって、ページを送信する前に確認ダイアログ ボックスを表示する、またはページの送信をすべてキャンセルするなどのタスクを実行できます。
ボタン Web サーバー コントロールに OnClientClick イベントを処理するクライアント スクリプトを追加するには
クライアント スクリプトを追加する ASP.NET ボタン Web サーバー コントロール (Button、LinkButton、または ImageButton コントロール) で、OnClientClick プロパティを、実行するクライアント スクリプトに設定します。
メモ : 送信をキャンセルできるようにする場合は、OnClientClick プロパティを、文字列 "Return" および関数名に設定します。これによって、クライアント スクリプトは false を返して送信をキャンセルできます。
Button コントロールにクライアント スクリプトのクリック イベントを追加する方法のコード例を次に示します。
<%@ Page Language="VB" %> <script runat="server"> Sub Button1_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Label1.Text = "Server click handler called." End Sub </script> <body> <form id="form1" runat="server"> <asp:Button ID="Button1" Runat="server" OnClick="Button1_Click" OnClientClick="return confirm('Ready to submit.')" Text="Test Client Click" /> <br /> <asp:Label ID="Label1" Runat="server" text="" /> </form> </body> </html>
<%@ Page Language="C#" %> <script runat="server"> void Button1_Click(Object sender, EventArgs e) Label1.Text = "Server click handler called."; End Sub </script> <html xmlns="http://www.w3.org/1999/xhtml" > <body> <form id="form1" runat="server"> <asp:Button ID="Button1" Runat="server" OnClick="Button1_Click" OnClientClick="return confirm('Ready to submit.')" Text="Test Client Click" /> <br /> <asp:Label ID="Label1" Runat="server" text="" /> </form> </body> </html>