ユーザー コントロール イベントの処理
イベント処理メソッドの記述方法は、ユーザー コントロールの場合でも Web フォーム ページの場合でもほとんど違いがありません。ただし、ユーザー コントロールは自身のイベントをカプセル化し、そのコントロールを含むページを通じてイベント情報を送信して処理させることに注意してください。ユーザー コントロールを含むページの中にユーザー コントロール イベント ハンドラを含めたり、ユーザー コントロールのコード宣言ブロックの中またはユーザー コントロールを生成する分離コード ファイルの中にハンドラを書き込んだりしないでください。ASP.NET サーバー コントロール用のイベント ハンドラの作成方法については、「Windows フォーム ページのサーバー イベント処理」を参照してください。
ユーザー コントロール イベントをコントロールの中にカプセル化するには
フォーム用のイベント処理コードを含むユーザー コントロールの中に、コード宣言ブロックを含めます。
メモ ユーザー コントロールのイベントと関連するサーバー コントロールのすべてをユーザー コントロール自体の中に含めるか、または FindControl メソッドを使用することで特定のコントロール機能を検索してアクセスする必要があります。
次のコードは拡張子 .ascx の付いたファイルの中に含まれ、
Button
Web サーバー コントロールがクリックされたときに実行されます。<h3> <u>User Control</u> </h3> <script language="VB" runat=server> Sub EnterBtn_Click(Sender as Object, E as EventArgs) Label1.Text = "Hi " & Name.Text & " welcome to ASP.NET!" End Sub </script> Enter Name: <asp:textbox id="Name" runat=server/> <asp:button Text="Enter" OnClick="EnterBtn_Click" runat=server/> <br><br> <asp:label id="Label1" runat=server/> [C#] <h3> <u>User Control</u> </h3> <script language="C#" runat=server> void EnterBtn_Click(Object Sender, EventArgs E){ Label1.Text = "Hi " + Name.Text + " welcome to ASP.NET!"; } </script> Enter Name: <asp:textbox id="Name" runat=server/> <asp:button Text="Enter" OnClick="EnterBtn_Click" runat=server/> <br><br> <asp:label id="Label1" runat=server/>
ユーザー コントロールを表示する Web フォーム ページの中で、そのユーザー コントロールを宣言します。
メモ この手順のコードは、「Web フォーム ページへのユーザー コントロールの取り込み」のコードと対話します。
参照
Web フォーム ユーザー コントロール | ユーザー コントロールの作成 | Web フォーム ページへのユーザー コントロールの取り込み | Windows フォーム ページのサーバー イベント処理 | ユーザー コントロール イベントの処理