車の情報まとめアプリ09(ページ移動Sessionなど)

■表示、登録画面を接続させる。
前回までで情報の表示画面と登録画面をそれぞれ独立してつくったので、それらを移動できるようにする。トップページは表示画面として、そこからボタンで登録画面に移るようにした。

アプリの実行後は、まず0_TopPage.aspxが表示され、その後NewRegisterボタンで登録画面へ移動する。

NewRegisterボタンの実行内容は下のもの。

Protected Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        Session("setBrand") = DropDownList1.SelectedItem
        Response.Redirect("1_RegisterPage.aspx", False)
End Sub

単純にRedirectで登録画面(1_RegisterPage.aspx)を呼び出す形。ここで2つ目の引数をFalseとしているけど、コードのデバッグ中に ThreadAbortException が出たので、その回避策として入れている。
あと、単に移動させるだけではつまらないので、Session変数を使って、ドロップダウンリストで表示しているメーカー名を登録画面に設定するようにした。登録画面ではページのロード時にSession変数からドロップダウンリストに入れている。

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        If Session("setBrand") IsNot Nothing Then
            DropDownList1.SelectedValue = Session("setBrand").ToString
        End If

End Sub

上の画面の状態でNewRegisterボタンを押すと、下のような表示となる。

登録が成功した後は、同様にResponse.Redirectを使って表示画面に戻るようにした。(もし登録を行わない場合はブラウザ機能で戻るという想定)

画面の移動はこれで終わり。

情報をホップアップさせて表示させるときのフォーマットが少し気になったので修正した。aspx.vbの中でフォーマットを整えているので、ここに改行(vbCrLF)を追加すればいいかと思ったけど、HTTPのレスポンスでは改行が無視されるそう。function OnSuccess(response) で戻ってきた response を見ると削除されていた。そのため、[[Newline]]のように適当な文字列を改行のキーワードとして入力しておき、javascriptのreplaceAllで改行コード<br>へ置き換えた。

やりたいことはこのくらいかなー。せっかくWebアプリケーションのサンプルとして作ったので、公開してアクセスすることもできないかな。