ポストバックを理解する

 クライアントのWebブラウザーとWebサーバー間のデータの流れを見てみましょう。先ほど作成したWebサイトをコピーして利用しましょう。

○ プロジェクト

 プロジェクトを作成して確認してみましょう。

プロジェクトの種類 ASP.NET Webアプリケーション
プロジェクト名 PostBackTest

サンプルダウンロード

○ 作成の準備

 「WebApplication1」プロジェクトを修正して作成しましょう。WebApplication1フォルダーをコピーして、作成するプロジェクト名にフォルダー名を変更してください。

○ プログラム

 ページが読み込まれたときの処理を記述します。この、「読み込まれた時」などのことをイベントと呼びます。デザイン画面上の、コントロールが何も配置していないところをダブルクリックしてみてください。すると、Page_Loadイベントハンドラが表示されます。そのイベントハンドラのブロック内に次のように入力してください。また、Button1_Clickの処理は消すか、コメントアウトしておきます。

index.aspx.vb

  1. Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  2.  If Not Me.IsPostBack Then
  3.   Me.Label1.Text = "InitLoad<br>"
  4.  Else
  5.   Me.Label1.Text &= "Post Back<br>"
  6.  End If
  7. End Sub
  8. Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  9.  'Me.Label1.Text = "Hello ASP.NET!!"
  10. End Sub

○ 実行結果

実行結果
実行結果

○ 解説

 実行すると、Webブラウザーから初めての要求が発生します。するとWebサーバーからの応答によりWebブラウザーに「Init Load」が表示されます。その後、Webブラウザーに表示されている「送信」ボタンを押すと、Webブラウザーから2回目の要求が発生します。Webサーバーで初めての要求なのか、2回目以降の要求なのかを判定できます。

 Webサーバーに要求が行われるとそのたびにPage_Loadイベントが呼び出されます。5行目では、Webブラウザーからの要求がポストバック(2回目以降の要求)かどうかを確認しています。Webブラウザーからの初めての要求はポストバックではないので、6行目が実行されます。ポストバックかどうかはIsPostBackプロパティを調べます。Trueならポストバック、Falseならポストバックではありません。8行目は、Webブラウザーの要求がポストバックであれば実行されます。

前へ   次へ