方法 : Web フォーム アプリケーションでイベントを利用する
一般的に 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 クラスを使用します。
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 の背景色を変更します。
セキュリティに関するメモ |
---|
この例には、ユーザー入力を受け付けるテキスト ボックスがあるため、セキュリティ上の脅威になる可能性があります。既定では、ASP.NET Web ページは、ユーザー入力にスクリプトまたは 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>
<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>
コードのコンパイル
Web フォームでのイベント処理の動作方法を調べるには、例のページを .aspx という拡張子の付いたファイルに保存し (この拡張子は、このファイルが ASP.NET ページであることを示します)、IIS 仮想ルート ディレクトリの任意の場所に配置します。