ASP.NET - イベント
- 前のページ WebForms コントロール
- 次のページ WebForms フォーム
イベントハンドラ(event handler)は、特定のイベントに対してコードを実行するサブルーチンです。
ASP.NET - イベントハンドラ
以下のコードをご覧ください:
<% lbl1.Text="The date and time is " & now() %> <html> <body> <form runat="server"> <h3><asp:label id="lbl1" runat="server" /></h3> </form> </body> </html>
上記のコードがいつ実行されるのか?答えは「分からない...」です。
Page_Load イベント
Page_Load イベントは ASP.NET が理解できる多くのイベントのうちの1つです。Page_Load イベントはページが読み込まれたときにトリガーされ、その後 ASP.NET は自動的にサブルーチン Page_Load を呼び出し、その中のコードを実行します:
<script runat="server"> Sub Page_Load lbl1.Text="The date and time is " & now() End Sub </script> <html> <body> <form runat="server"> <h3><asp:label id="lbl1" runat="server" /></h3> </form> </body> </html>
注釈:この Page_Load イベントはオブジェクトリファレンスやイベントパラメータを含んでいません!
Page.IsPostBack プロパティ
Page_Load サブルーチンはページが読み込まれるたびに実行されます。ページが最初に読み込まれたときにのみ Page_Load サブルーチン内のコードを実行したい場合は、Page.IsPostBack プロパティを使用できます。Page.IsPostBack プロパティが false であれば、ページが最初に読み込まれた場合です。true であれば、ページがサーバーに戻されました(例えば、フォーム上のボタンをクリックした場合):
<script runat="server"> Sub Page_Load if Not Page.IsPostBack then lbl1.Text="The date and time is " & now() end if End Sub Sub Submit(s As Object, e As EventArgs) lbl2.Text="Hello World!" End Sub </script> <html> <body> <form runat="server"> <h3><asp:label id="lbl1" runat="server" /></h3> <h3><asp:label id="lbl2" runat="server" /></h3> <asp:button text="Submit" onclick="submit" runat="server" /> </form> </body> </html>
上の例はページが最初に読み込まれたときに「The date and time is....」というメッセージを作成します。ユーザーが Submit ボタンをクリックすると、submit サブルーチンが 2番目の label に「Hello World!」を作成しますが、1番目の label の日付と時間は変更されません。
- 前のページ WebForms コントロール
- 次のページ WebForms フォーム