HttpResponseオブジェクトを使ったページ遷移
        
             HttpResponseクラスのRedirectメソッドを使ったページ遷移の方法を見てみましょう。PageオブジェクトのResponseプロパティでHttpResponseオブジェクトを取得できます。
        
        
            ■ 主なプロパティ
        
        
            
                
                    | プロパティ名 | 概要 | 
                
                    | Cookies | 応答のクッキーコレクションを取得する | 
            
            HttpResponeの主なプロパティ
         
        
            ■ 主なメソッド
        
        
            
                
                    | メソッド名 | 概要 | 
                
                    | Redirect | クライアントを引数で指定したURLにリダイレクトする | 
            
            HttpResponeの主なプロパティ
         
        
             ページを遷移するにはRedirectメソッドを使います。データをほかのフォームへ送信する際にURLに埋め込んで送ることができます。この方法をGET送信といいます。
        
        
             例: 
               http://localhost/index.aspx?id=123&name=suzuki
        
        
             受信するフォームでは、HttpRequestクラスを使用して情報を取り出します。PageオブジェクトのRequestプロパティでHttpRequestオブジェクト取得できます。
        
        
            ■ 主なプロパティ
        
        
            
                
                    | プロパティ名 | 概要 | 
                
                    | Cookies | クライアントから送信されたクッキーのコレクションを取得する | 
                
                    | QueryString | HTTPクエリ文字列変数のコレクションを取得する | 
            
            HttpRequestの主なプロパティ
         
        
            
                | プロジェクトの種類 | ASP.NET Webアプリケーション | 
            
                | プロジェクト名 | HttpResponseTest | 
                        
        
        
            サンプルダウンロード
        
        
            ○ デザイン(index.aspx)
        
        
             Webフォームを追加して、次のようにコントロールを配置してください。
        
        
            
                 
            
            
            コントロールの配置例
        
        
            ○ プログラム(index.aspx.vb)
        
        
             次のように各イベントハンドラにプログラムを記述してください。
        
 
        
            index.aspx.vb
        
        
            
                - Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
-  'ポストバックのときは処理をしない
-  If Me.IsPostBack Then
-   Return
-  End If
-  'DropDownListを初期化
-  Dim vehicle(2) As ListItem
-  vehicle(0) = New ListItem("車", "Car")
-  vehicle(1) = New ListItem("バス", "Bus")
-  vehicle(2) = New ListItem("タクシー", "Taxi")
-  Me.ddlVehicle.Items.AddRange(vehicle)
-  'CheckBoxListを初期化
-  Dim fruits(1) As ListItem
-  fruits(0) = New ListItem("メロン")
-  fruits(1) = New ListItem("すいか")
-  Me.chkFruits.Items.AddRange(fruits)
- End Sub
- Protected Sub btnSend_Click(sender As Object, e As EventArgs) Handles btnSend.Click
-  '送信のためのURLを作成
-  Dim url As String = "receive.aspx?text=" + Me.txtMessage.Text
-  url += "&vehicle=" + ddlVehicle.SelectedValue
-  'CheckBoxコントロールはチェックされた項目を調べる
-  url += "&fruits="
-  For Each li As ListItem In Me.chkFruits.Items
-   If li.Selected Then
-    url &= li.Value & ","
-   End If
-  Next
-  '余分についたカンマを除去
-  If url.EndsWith(",") Then
-   url = url.Remove(url.LastIndexOf(","), 1)
-  End If
-  'ページ遷移
-  Me.Response.Redirect(url)
- End Sub
 
        
            ○ デザイン(receive.aspx)
        
        
             Webフォーム(receive.aspx)を追加して、次のようにコントロールを配置してください。
        
        
            
                 
            
            
            コントロールの配置例
        
        
            ○ プログラム(receive.aspx.vb)
        
        
             次のようにプログラムを記述してください。
        
 
        
            index.aspx.vb
        
        
            
                - Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
-  '受信した内容を表示
-  Me.lblQueryString.Text = Me.ClientQueryString
-  Me.lblMessage.Text = Me.Request("text")
-  Me.lblVehicle.Text = Me.Request("vehicle")
-  Me.lblFruits.Text = Me.Request("fruits")
- End Sub
 
        
            ○ 実行結果
        
        
             index.aspxを実行してください。
        
        
            
                 
            
            
            実行結果
        
        
            ○ 解説
        
        
             index.aspx.vbの11~15行目と、18~21行目は、それぞれのリストコントロールに項目を追加しています。今回は、ListItem配列に項目をあらかじめ準備して、リストコントロールのItemsコレクションのAddRangeメソッドの引数に渡しています。これにより、項目が設定されます。
        
        
             26行目では、送信先のURLを作成しています。データを渡すためにURLにデータを追加します。Webページのファイル名の後に「?キー=値&キー=値」というようにセットします。
        
        
             receive.aspxe.vbの6行目では、PageオブジェクトのQueryStringプロパティを参照して要求のあったURLにセットされたデータを表示しています。その中のデータを取得するには、HttpRequestオブジェクトのitemプロパティを使います。このプロパティはRequest(“キー名”)のようにアクセスできます。7~9行目では送信されたデータを表示しています。
        
        
            
            
            
            
        
        
        
            前へ   次へ