方法 : Web フォーム アプリケーションでイベントを利用する
更新 : 2007 年 11 月
一般的に Web フォーム アプリケーションでは、Web ページにコントロールを設定し、ユーザーがクリックしたコントロールに応じて特定のアクションを実行します。たとえば、ユーザーが Web ページ内の System.Web.UI.WebControls.Button コントロールをクリックしたときに、このコントロールによってイベントが発生します。そのイベントを処理することで、アプリケーションでは、そのボタンのクリックに対して適切なアプリケーション ロジックを実行できます。
Web フォーム プログラミング モデルの詳細については、「Web フォームのプログラミング」を参照してください。
Web ページのボタン クリック イベントを処理するには
Button コントロールのある Web フォーム ページ (ASP.NET ページ) を作成します。
<asp:Button id = "Button" Text = "Click Me" runat = server/>
Click イベントのデリゲート シグネチャに一致するイベント ハンドラを定義します。Click イベントでは、デリゲート型に EventHandler クラス、イベント データに EventArgs クラスをそれぞれ使用します。
void Button_Click(object sender, EventArgs e) {...}
Sub Button_Click(sender As Object, e As EventArgs) ... End Sub
Button 要素の OnClick 属性にイベント ハンドラ メソッドを設定します。
<asp:Button id = "Button" OnClick = "Button_Click" Text = "Click Me" runat = server/>
メモ : Web フォーム アプリケーションの開発者は、デリゲートを直接操作しなくても、示すようにイベントを宣言的に関連付けることができます。ASP.NET ページのフレームワークは、Button_Click を参照する EventHandler のインスタンスを作成し、このデリゲート インスタンスを Button インスタンスの Click イベントに追加するコードを生成します。
使用例
次の Web フォーム ページは、Button の Click イベントを処理して TextBox の背景色を変更します。この例で太字になっている要素は、イベント ハンドラのコードおよびそのイベント ハンドラを Button の Click イベントに接続する方法を示しています。
セキュリティに関するメモ : |
---|
この例には、ユーザー入力を受け付けるテキスト ボックスがあるため、セキュリティ上の脅威になる可能性があります。既定では、ASP.NET Web ページは、ユーザー入力にスクリプトまたは HTML 要素が含まれていないことを検証します。詳細については、「スクリプトによる攻略の概要」を参照してください。 |
[C#]
<html>
<script language="C#" runat=server>
private void Button_Click(object sender, EventArgs e){ Box.BackColor = System.Drawing.Color.LightGreen; }
</script>
<body>
<form method="POST" action="Events.aspx" runat=server>
Click the button, and notice the color of the text box.<br><br>
<asp:TextBox
id = "Box" Text = "Hello" BackColor = "Cyan" runat=server/>
<br><br>
<asp:Button
id = "Button" OnClick = "Button_Click" Text = "Click Me"
runat = server/>
</form>
</body>
</html>
<html>
<script language="VB" runat=server>
Private Sub Button_Click(sender As Object, e As EventArgs) Box.BackColor = System.Drawing.Color.LightGreen
End Sub
</script>
<body>
<form method="POST" action="Events.aspx" runat=server>
Click the button, and notice the color of the text box.<br><br>
<asp:TextBox
id = "Box" Text = "Hello" BackColor = "Cyan" runat=server/>
<br><br>
<asp:Button
id = "Button" OnClick = "Button_Click" Text = "Click Me"
runat = server/>
</form>
</body>
</html>
コードのコンパイル方法
Web フォームでのイベント処理の動作方法を調べるには、例のページを .aspx という拡張子の付いたファイルに保存し (この拡張子は、このファイルが ASP.NET ページであることを示します)、IIS 仮想ルート ディレクトリの任意の場所に配置します。