ポストバックを理解する

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

○ プロジェクト

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

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

サンプルダウンロード

○ 作成の準備

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

○ プログラム

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

index.aspx.cs

  1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3.  if (!this.IsPostBack)
  4.  {
  5.   this.Label1.Text = "InitLoad<br>";
  6.  }
  7.  else
  8.  {
  9.   this.Label1.Text += "Post Back<br$gt;";
  10.  }
  11. }
  12. protected void Button1_Click(object sender, EventArgs e)
  13. {
  14.  //this.Label1.Text = "Hello ASP.NET!!";
  15. }

○ 実行結果

実行結果
実行結果

○ 解説

 実行すると、最初に「Init Load」が表示されて、それ以降はボタンを押すたびに「Post Back」が表示されます。14行目では、ブラウザーからの要求がポストバックかどうかを確認しています。ブラウザーからの初めての要求はポストバックではないので、16行目が実行されます。ポストバックかどうかはIsPostBackプロパティを調べます。trueならポストバック、falseならポストバックではありません。20行目は、ブラウザーの要求がポストバックであれば実行されます。

前へ   次へ