【ASP.NET】ポストバック (POST BACK)

POST BACKとは?

 * 自分自身に対して、フォームの内容を送信し、処理すること。

イメージ(クリックイベントの場合)

* この例でいえば、Clickイベントが発生した場合、「ボタンがクリックされたよ」という情報をWebサーバ上の自分自身に対して、送信することを、PostBackと解釈できる
      [Clickイベント発生]
                       イベント発生(ポストバック)
               ----------------->>-------------------+ [Clickイベント処理]
                                                     | 
クライアント                                         | Webサーバ(IIS)
               -----------------<<-------------------+
                       イベントの処理結果

POST BACKの利点

 * Windowsアプリケーション的なイベント処理モデルを疑似的に実現できる

POST BACKあれこれ

POST BACKしてもスクロール位置を保持するには

 * 「MaintainScrollPositionOnPostback="true"」を設定する

サンプル

<%@ Page Language="vb" MaintainScrollPositionOnPostback="true" AutoEventWireup="false" CodeBehind="WebForm1.aspx.vb" Inherits="VBTestSite.WebForm1" %>

参考文献

http://mitc.xrea.jp/diary/057
http://msdn.microsoft.com/ja-jp/library/system.web.ui.page.maintainscrollpositiononpostback%28VS.80%29.aspx


ポストとポストバックの違い

参考文献

http://www.atmarkit.co.jp/fdotnet/dotnettips/043postback/postback.html

Windowsアプリケーションとの違い

 * Loadイベントが、ポストバック時も含めて毎回のページのアクセスで発生すること
  => 初期化する時、注意が必要。

では、どうするか?

 * 「IsPostBack」で判断する

サンプル

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    ' 毎回行う初期化処理

    If Not Me.IsPostBack Then
        ' 最初のアクセス時にのみ行う初期化処理
    Else
        ' ポストバック時にのみ行う初期化処理
    End If

End Sub

ページ間ポスティング(クロスページ・ポストバック)

 * 他のページ対して、容易にポストする仕組み

クロスページ・ポストバックを利用するには

 * ポストバックの発生元となるコントロールのPostBackUrl属性にポスト先のURLを指定する



関連記事

クライアント・コールバック (Client Call Back)

http://blogs.yahoo.co.jp/dk521123/27105579.html