- - PR -
Server.Transferで困り事
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-12-02 09:24
いつもお世話になっております、VB.NET暦2ヶ月の初心者です。
現在の案件で、親ページからServer.Transferで遷移して子ページが プロパティを親ページで受け取る部分があります。 プロパティの受け渡しは何も問題ないのですが、子ページで ブラウザの更新ボタンを押すと親ページが表示されたり、 ブラウザの戻るボタンで子ページから親ページへ戻れなかったり、 親ページのSmartNavigationを子ページが引き継いだりで、 その他の部分の挙動に多大な指摘を入れられてしまいました。 こちらの連載を読んでServer.Transferの仕組みは大体 分かったのですが、いざ使うとなんとも…。 Server.Transferを使用しながら、「親ページと子ページを 切り離して動作」みたいなことはできないのでしょうか? |
|
投稿日時: 2003-12-02 09:34
Response.Redirect について調べてみるといいかも・・・
Server.Transferの仕組みはサーバー側で転送して結果(子ページ)のみを返すので ブラウザ側は転送前(親ページ)を表示していると思っているのです。 |
|
投稿日時: 2003-12-02 09:42
お返事ありがとうございます。
Response.Redirectで遷移・SessionまたはQueryStringで 値を渡すパターンは他ページでやっているので存じ上げているのですが、 いざ改修をするにはなにぶん切迫しすぎている状況で…。 それにしても、値を渡す効果を使いたくてServer.Transferを 使用したのですが、製造の際はそのような”副作用”が あるとはつゆ知らず。 本当に「思ったとおり」でなく「作ったとおり」に動きますね…。 |
|
投稿日時: 2003-12-02 09:58
戻るボタンの挙動については、SmartNavigationを切ると
正常になるかもしれません。 aspxページのディレクティブに <%@ Page SmartNavigation="true" %> と記述するのではなく、 Page_Load時に Page.SmartNavigation=true とし、Server.Transferをするすぐ前に Page.SmartNavigation=false としてみるのはどうでしょうか。 更新ボタンを押したときの挙動は、 Server.Transferを使っている以上、難しいかもしれません。 思いつくのは、Sessionに表示している(子)ページのURLを記述して、 Reload時にPage_Loadで必ずその値にRedirectするくらいでしょうか。 ただ実際に試したわけではないので、本当に動作するかはわかりませんが、 何かのヒントになれば幸いです。 |
|
投稿日時: 2003-12-02 11:17
経過を報告します。
>Page_Load時に > Page.SmartNavigation=true は成功しましたが、 >Server.Transferをするすぐ前に > Page.SmartNavigation=false としても、プロパティの値はfalseになったものの 実際の動きはSmartNavigationが残ったままでした。 Page_Loadの契機となったコントロールによって 判定する(遷移ボタンがクリックされて Page_LoadされたときだけSmartNavigationを Trueにしない)などできればよいのですが…。 |
1