- ベストアンサー
登録後、呼び出し元ページに戻るには
こんにちは。 ASP.NET2.0を使っています データベースを閲覧したり修正したりするページを作成しています。 閲覧画面AとBがあり、どちらのページからも修正画面Cに行くことができます。 画面A→画面C 画面B→画面C ここで修正画面Cでデータを修正後、呼び出されたページに戻りたいのですが、呼び出されたページを取得する方法に困っています 修正後の画面に戻りたいので、javascriptのhistory.back()は使えませんし、Request.UrlReferrerは修正時にポストバックされるからか修正画面Cのアドレスを示してしまっています。 なにか方法はないものでしょうか?よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ページの遷移をどのように行っていますか? ボタンのクリックイベントで Server.Transferで遷移しているならPreviousPageで取得できます 画面Cのメンバーに dim myPreVious as Page を追加 画面Cの Page_Lodeイベントで if IsPostback = FALSE then if PreviousPage isnot nothing then Session("Previous") = PreviousPage end if Else myPrevious = Seccion("Previous") End if 画面Cの呼び出し元へ戻る場合 if myPrevious isnot Nothing then Session("Previous") = Nothing Response.Redirect( myPrevious.AppRelativeVirtualPath) end if といった具合いで ・・・
その他の回答 (1)
- khazad-lefty
- ベストアンサー率44% (296/668)
一度でもポストバックされたら「前のページ」は自分になっちゃいますね。 なら、最初に呼び出されたときにそのページの情報を隠しテキストボックスなりに保存しちゃうといいんじゃないかと。
お礼
目的を達することができました。 アドレスの保存にはViewStateを使いました。 ありがとうございました。
補足
お返事ありがとうございます。 >一度でもポストバックされたら「前のページ」は自分になっちゃいますね。 どうやらそのようですね。 >なら、最初に呼び出されたときにそのページの情報を隠しテキストボックスなりに保存しちゃうといいんじゃないかと。 IsPostBackを見て処理を行うようにしてみます。
お礼
目的を達することができました。 アドレスの保存にはViewStateを使いました。 ありがとうございました。
補足
お返事ありがとうございます。 >ボタンのクリックイベントで Server.Transferで遷移しているならPreviousPageで取得できます 残念ながら画面Cにはリンクでやってくるのです。 ですが、 >if IsPostback = FALSE then つまりポストバックかどうかを見るということですね。 この方法でやってみます。