「ASP.NET 2005 Web アプリケーションの画面遷移」の版間の差分
ナビゲーションに移動
検索に移動
(同じ利用者による、間の2版が非表示) | |||
1行目: | 1行目: | ||
− | ==ASP.NET 2005 Web アプリケーションの画面遷移== | + | ==[[ASP.NET 2005 Web アプリケーションの画面遷移]]== |
− | [[ASP.NET 2005]][[ASP.NET]][[Visual Studio]][[C | + | [[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 | ||
===概要=== | ===概要=== | ||
====ポストバック==== | ====ポストバック==== | ||
− | *Web | + | *Web フォームでは、ユーザーのブラウザー上に、[[HTML]] ベースの Web ページとしてユーザー インターフェイスが表示される |
*Web ページに関わる処理は、サーバーサイドで行われる | *Web ページに関わる処理は、サーバーサイドで行われる | ||
− | *ブラウザー上でユーザーがボタンをクリックした場合、そのことがサーバーに通知(表示しているページ自身のURLへ HTTP POST)され、サーバー上に実装された Click イベントに呼応するイベント ハンドラーが実行される | + | *ブラウザー上でユーザーがボタンをクリックした場合、そのことがサーバーに通知(表示しているページ自身のURLへ [[HTTP]] POST)され、サーバー上に実装された Click イベントに呼応するイベント ハンドラーが実行される |
*自分自身のページに対するポストを、「ポストバック」と呼ぶ | *自分自身のページに対するポストを、「ポストバック」と呼ぶ | ||
===画面遷移の主な 4 つの方法=== | ===画面遷移の主な 4 つの方法=== | ||
*HyperLink コントロール | *HyperLink コントロール | ||
− | * | + | *ポストバック先のサーバーサイドで、[[R]]esponse.[[R]]edirect |
*ポストバック先のサーバーサイドで、Server.Transfer | *ポストバック先のサーバーサイドで、Server.Transfer | ||
*Button コントロールのポスト先が、別のページになるように設定(Cross-Page Posting) | *Button コントロールのポスト先が、別のページになるように設定(Cross-Page Posting) | ||
18行目: | 18行目: | ||
===例=== | ===例=== | ||
====Default.asp ページを作成==== | ====Default.asp ページを作成==== | ||
− | * | + | *テキスト、ハイパー[[リンク]]、ボタン×3(それぞれの遷移方法確認用) を配置 |
− | * | + | *ハイパー[[リンク]]の NavigateUrl=~/Page2.asp とする |
[[File:0213_asp37.jpg]] | [[File:0213_asp37.jpg]] | ||
*ボタン3 の PostBackUrl=~/Page2.asp とする | *ボタン3 の PostBackUrl=~/Page2.asp とする | ||
27行目: | 27行目: | ||
protected void Button1_Click(object sender, EventArgs e) | protected void Button1_Click(object sender, EventArgs e) | ||
{ | { | ||
− | + | [[R]]esponse.[[R]]edirect("~/Page2.aspx"); | |
} | } | ||
protected void Button2_Click(object sender, EventArgs e) | protected void Button2_Click(object sender, EventArgs e) | ||
45行目: | 45行目: | ||
protected void Page_Load(object sender, EventArgs e) | protected void Page_Load(object sender, EventArgs e) | ||
{ | { | ||
− | if (Page. | + | if (Page.Pre[[vi]]ousPage != null) |
{ | { | ||
− | TextBox txt = (TextBox)Page. | + | TextBox txt = (TextBox)Page.Pre[[vi]]ousPage.FindControl("TextBox1"); |
if (txt != null) | if (txt != null) | ||
{ | { | ||
68行目: | 68行目: | ||
|されない | |されない | ||
|HyperLink.NavigateUrl | |HyperLink.NavigateUrl | ||
− | | | + | |クリックされたときに[[リンク]]する URL を取得または設定 |
|- | |- | ||
− | | | + | |[[R]]esponse.[[R]]edirect |
|されない | |されない | ||
− | | | + | |Http[[R]]esponse.[[R]]edirect |
− | |クライアントを新しい | + | |クライアントを新しい U[[R]]L にリダイレクト |
|- | |- | ||
|Server.Transfer | |Server.Transfer | ||
|される | |される | ||
|HttpServerUtility.Transfer | |HttpServerUtility.Transfer | ||
− | |現在のページの実行を終了し、現在の要求に対して、そのページへの指定した | + | |現在のページの実行を終了し、現在の要求に対して、そのページへの指定した U[[R]]L パスを使用して新しいページの実行を開始 |
|- | |- | ||
|Coss-Page Posting | |Coss-Page Posting | ||
|される | |される | ||
|Button.PostBackUrl | |Button.PostBackUrl | ||
− | |クリックされたときに現在のページからのポスト先となるページの | + | |クリックされたときに現在のページからのポスト先となるページの U[[R]]L を取得または設定。既定値は空の文字列、この場合、そのページ自体にポストバックされる |
|- | |- | ||
|} | |} | ||
[[File:0217_asp41.jpg]] | [[File:0217_asp41.jpg]] |
2020年2月16日 (日) 04:22時点における最新版
目次
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 の 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 矢木浩人