トップ 一覧 ping 検索 ヘルプ RSS ログイン

ASP.NET 2005 Web アプリケーションの画面遷移の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!ASP.NET 2005 Web アプリケーションの画面遷移
[ASP.NET 2005][ASP.NET][Visual Studio][C#]
*http://msdn.microsoft.com/ja-jp/netframework/ee692372.aspx

!!概要
!ポストバック
*Web フォームでは、ユーザーのブラウザー上に、HTML ベースの Web ページとしてユーザー インターフェイスが表示される
*Web ページに関わる処理は、サーバーサイドで行われる
*ブラウザー上でユーザーがボタンをクリックした場合、そのことがサーバーに通知(表示しているページ自身のURLへ HTTP POST)され、サーバー上に実装された Click イベントに呼応するイベント ハンドラーが実行される
*自分自身のページに対するポストを、「ポストバック」と呼ぶ

!!画面遷移の主な 4 つの方法
*HyperLink コントロール
*ポストバック先のサーバーサイドで、Response.Redirect 
*ポストバック先のサーバーサイドで、Server.Transfer 
*Button コントロールのポスト先が、別のページになるように設定(Cross-Page Posting)

!!例
!Default.asp ページを作成
*テキスト、ハイパーリンク、ボタン×3(それぞれの遷移方法確認用) を配置
*ハイパーリンクの NavigateUrl=~/Page2.asp とする
{{ref_image asp37.jpg}}
*ボタン3 の PostBackUrl=~/Page2.asp とする
{{ref_image asp39.jpg}}

*イベントハンドラを実装
 protected void Button1_Click(object sender, EventArgs e)
 {
     Response.Redirect("~/Page2.aspx");
 }
 protected void Button2_Click(object sender, EventArgs e)
 {
     Server.Transfer("~/Page2.aspx");
 }
 protected void Button3_Click(object sender, EventArgs e)
 {
     
 }


!Page2.asp ページを作成
*テキストを置く
{{ref_image asp38.jpg}}
*ページロードイベントを実装
 protected void Page_Load(object sender, EventArgs e)
 {
     if (Page.PreviousPage != null)
     {
         TextBox txt = (TextBox)Page.PreviousPage.FindControl("TextBox1");
         if (txt != null)
         {
             TextBox1.Text = txt.Text;
         }
     }
 }

!実行結果
{{ref_image asp40.jpg}}

::テキストボックスの値の受け渡し
,遷移方法,データの受け渡し,対象,内容
,HyperLink,されない,HyperLink.NavigateUrl,クリックされたときにリンクする URL を取得または設定
,Response.Redirect,されない,HttpResponse.Redirect,クライアントを新しい URL にリダイレクト
,Server.Transfer,される,HttpServerUtility.Transfer,現在のページの実行を終了し、現在の要求に対して、そのページへの指定した URL パスを使用して新しいページの実行を開始 
,Coss-Page Posting,される,Button.PostBackUrl,クリックされたときに現在のページからのポスト先となるページの URL を取得または設定。既定値は空の文字列、この場合、そのページ自体にポストバックされる

{{ref_image asp41.jpg}}