「ASP.NET 2005 Web アプリケーションの画面遷移」の版間の差分
ナビゲーションに移動
検索に移動
1行目: | 1行目: | ||
==ASP.NET 2005 Web アプリケーションの画面遷移== | ==ASP.NET 2005 Web アプリケーションの画面遷移== | ||
− | + | [[ASP.NET 2005]] | [[ASP.NET]] | [[Visual Studio]] | [[C Sharp]] | | |
*http://msdn.microsoft.com/ja-jp/netframework/ee692372.aspx | *http://msdn.microsoft.com/ja-jp/netframework/ee692372.aspx | ||
2020年2月15日 (土) 08:33時点における版
目次
ASP.NET 2005 Web アプリケーションの画面遷移
ASP.NET 2005 | ASP.NET | Visual Studio | C Sharp |
概要
ポストバック
- Web フォームでは、ユーザーのブラウザー上に、HTML ベースの Web ページとしてユーザー インターフェイスが表示される
- Web ページに関わる処理は、サーバーサイドで行われる
- ブラウザー上でユーザーがボタンをクリックした場合、そのことがサーバーに通知(表示しているページ自身のURLへ HTTP POST)され、サーバー上に実装された Click イベントに呼応するイベント ハンドラーが実行される
- 自分自身のページに対するポストを、「ポストバック」と呼ぶ
画面遷移の主な 4 つの方法
- HyperLink コントロール
- ポストバック先のサーバーサイドで、Response.Redirect
- ポストバック先のサーバーサイドで、Server.Transfer
- Button コントロールのポスト先が、別のページになるように設定(Cross-Page Posting)
例
Default.asp ページを作成
- テキスト、ハイパーリンク、ボタン×3(それぞれの遷移方法確認用) を配置
- ハイパーリンクの NavigateUrl=~/Page2.asp とする
- ボタン3 の PostBackUrl=~/Page2.asp とする
- イベントハンドラを実装
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 ページを作成
- テキストを置く
- ページロードイベントを実装
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; } } }
実行結果
テキストボックスの値の受け渡し
遷移方法 | データの受け渡し | 対象 | 内容 |
---|---|---|---|
HyperLink | されない | HyperLink.NavigateUrl | クリックされたときにリンクする URL を取得または設定 |
Response.Redirect | されない | HttpResponse.Redirect | クライアントを新しい URL にリダイレクト |
Server.Transfer | される | HttpServerUtility.Transfer | 現在のページの実行を終了し、現在の要求に対して、そのページへの指定した URL パスを使用して新しいページの実行を開始 |
Coss-Page Posting | される | Button.PostBackUrl | クリックされたときに現在のページからのポスト先となるページの URL を取得または設定。既定値は空の文字列、この場合、そのページ自体にポストバックされる |
© 2006 矢木浩人