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/057http://msdn.microsoft.com/ja-jp/library/system.web.ui.page.maintainscrollpositiononpostback%28VS.80%29.aspx
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を指定する
クライアント・コールバック
*http://www.atmarkit.co.jp/fdotnet/asp2review/asp2review08/asp2review08_03.html
http://msdn.microsoft.com/ja-jp/library/ms178208%28v=vs.80%29.aspx
参考文献
POST BACK
http://www.atmarkit.co.jp/fdotnet/dotnettips/043postback/postback.htmlクロスページ・ポストバック
http://www.atmarkit.co.jp/fdotnet/dotnettips/406asppostback1/asppostback1.htmlhttp://www.atmarkit.co.jp/fdotnet/dotnettips/409asppostback2/asppostback2.html