| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「ASP.NET 2005 Web アプリケーションの画面遷移」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
 
(同じ利用者による、間の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 フォームでは、ユーザーのブラウザー上に、HTML ベースの Web ページとしてユーザー インターフェイスが表示される
+
*Web フォームでは、ユーザーのブラウザー上に、[[HTML]] ベースの Web ページとしてユーザー インターフェイスが表示される
 
*Web ページに関わる処理は、サーバーサイドで行われる
 
*Web ページに関わる処理は、サーバーサイドで行われる
*ブラウザー上でユーザーがボタンをクリックした場合、そのことがサーバーに通知(表示しているページ自身のURLへ HTTP POST)され、サーバー上に実装された Click イベントに呼応するイベント ハンドラーが実行される
+
*ブラウザー上でユーザーがボタンをクリックした場合、そのことがサーバーに通知(表示しているページ自身のURLへ [[HTTP]] POST)され、サーバー上に実装された Click イベントに呼応するイベント ハンドラーが実行される
 
*自分自身のページに対するポストを、「ポストバック」と呼ぶ
 
*自分自身のページに対するポストを、「ポストバック」と呼ぶ
  
 
===画面遷移の主な 4 つの方法===
 
===画面遷移の主な 4 つの方法===
 
*HyperLink コントロール
 
*HyperLink コントロール
*ポストバック先のサーバーサイドで、Response.Redirect
+
*ポストバック先のサーバーサイドで、[[R]]esponse.[[R]]edirect
 
*ポストバック先のサーバーサイドで、Server.Transfer  
 
*ポストバック先のサーバーサイドで、Server.Transfer  
 
*Button コントロールのポスト先が、別のページになるように設定(Cross-Page Posting)
 
*Button コントロールのポスト先が、別のページになるように設定(Cross-Page Posting)
18行目: 18行目:
 
===例===
 
===例===
 
====Default.asp ページを作成====
 
====Default.asp ページを作成====
*テキスト、ハイパーリンク、ボタン×3(それぞれの遷移方法確認用) を配置
+
*テキスト、ハイパー[[リンク]]、ボタン×3(それぞれの遷移方法確認用) を配置
*ハイパーリンクの NavigateUrl=~/Page2.asp とする
+
*ハイパー[[リンク]]の 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)
 
  {
 
  {
     Response.Redirect("~/Page2.aspx");
+
     [[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.PreviousPage != null)
+
     if (Page.Pre[[vi]]ousPage != null)
 
     {
 
     {
         TextBox txt = (TextBox)Page.PreviousPage.FindControl("TextBox1");
+
         TextBox txt = (TextBox)Page.Pre[[vi]]ousPage.FindControl("TextBox1");
 
         if (txt != null)
 
         if (txt != null)
 
         {
 
         {
68行目: 68行目:
 
|されない
 
|されない
 
|HyperLink.NavigateUrl
 
|HyperLink.NavigateUrl
|クリックされたときにリンクする URL を取得または設定
+
|クリックされたときに[[リンク]]する URL を取得または設定
 
|-
 
|-
|Response.Redirect
+
|[[R]]esponse.[[R]]edirect
 
|されない
 
|されない
|HttpResponse.Redirect
+
|Http[[R]]esponse.[[R]]edirect
|クライアントを新しい URL にリダイレクト
+
|クライアントを新しい U[[R]]L にリダイレクト
 
|-
 
|-
 
|Server.Transfer
 
|Server.Transfer
 
|される
 
|される
 
|HttpServerUtility.Transfer
 
|HttpServerUtility.Transfer
|現在のページの実行を終了し、現在の要求に対して、そのページへの指定した URL パスを使用して新しいページの実行を開始  
+
|現在のページの実行を終了し、現在の要求に対して、そのページへの指定した U[[R]]L パスを使用して新しいページの実行を開始  
 
|-
 
|-
 
|Coss-Page Posting
 
|Coss-Page Posting
 
|される
 
|される
 
|Button.PostBackUrl
 
|Button.PostBackUrl
|クリックされたときに現在のページからのポスト先となるページの URL を取得または設定。既定値は空の文字列、この場合、そのページ自体にポストバックされる
+
|クリックされたときに現在のページからのポスト先となるページの 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(それぞれの遷移方法確認用) を配置
  • ハイパーリンクの NavigateUrl=~/Page2.asp とする

0213 asp37.jpg

  • ボタン3 の PostBackUrl=~/Page2.asp とする

0215 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 ページを作成

  • テキストを置く

0214 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;
        }
    }
}

実行結果

0216 asp40.jpg

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

0217 asp41.jpg