次の方法で共有


方法 : Web フォーム アプリケーションでイベントを利用する

更新 : 2007 年 11 月

一般的に Web フォーム アプリケーションでは、Web ページにコントロールを設定し、ユーザーがクリックしたコントロールに応じて特定のアクションを実行します。たとえば、ユーザーが Web ページ内の System.Web.UI.WebControls.Button コントロールをクリックしたときに、このコントロールによってイベントが発生します。そのイベントを処理することで、アプリケーションでは、そのボタンのクリックに対して適切なアプリケーション ロジックを実行できます。

Web フォーム プログラミング モデルの詳細については、「Web フォームのプログラミング」を参照してください。

Web ページのボタン クリック イベントを処理するには

  1. Button コントロールのある Web フォーム ページ (ASP.NET ページ) を作成します。

    <asp:Button id = "Button" Text = "Click Me" runat = server/>
    
  2. Click イベントのデリゲート シグネチャに一致するイベント ハンドラを定義します。Click イベントでは、デリゲート型に EventHandler クラス、イベント データに EventArgs クラスをそれぞれ使用します。

    void Button_Click(object sender, EventArgs e)
    {...}
    
    Sub Button_Click(sender As Object, e As EventArgs)
    ...
    End Sub
    
  3. Button 要素の OnClick 属性にイベント ハンドラ メソッドを設定します。

    <asp:Button
            id = "Button" OnClick = "Button_Click" Text = "Click Me" 
            runat = server/>
    
    メモ :

    Web フォーム アプリケーションの開発者は、デリゲートを直接操作しなくても、示すようにイベントを宣言的に関連付けることができます。ASP.NET ページのフレームワークは、Button_Click を参照する EventHandler のインスタンスを作成し、このデリゲート インスタンスを Button インスタンスの Click イベントに追加するコードを生成します。

使用例

次の Web フォーム ページは、ButtonClick イベントを処理して TextBox の背景色を変更します。この例で太字になっている要素は、イベント ハンドラのコードおよびそのイベント ハンドラを ButtonClick イベントに接続する方法を示しています。

セキュリティに関するメモ :

この例には、ユーザー入力を受け付けるテキスト ボックスがあるため、セキュリティ上の脅威になる可能性があります。既定では、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 仮想ルート ディレクトリの任意の場所に配置します。

参照

概念

イベントとデリゲート

イベントの利用

イベントの発生

その他の技術情報

イベントの処理と発生