ASP.NET - イベント

イベントハンドラ(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 の日付と時間は変更されません。

この例を表示