!!!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}}