C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: asp.net 戻るボタン(IEでない)


(過去ログ 116 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■68281 / inTopicNo.1)  asp.net 戻るボタン(IEでない)
  
□投稿者/ yan (1回)-(2013/10/07(Mon) 12:05:52)

分類:[ASP.NET (VB)] 

ASP.NET Fw3.5 VB です。
よろしくお願いいたします。

ASP.NETの画面に「戻る」ボタンがあります。IEの戻るではありません。
この「戻る」でひとつ前の画面に戻りたいのですが
戻るボタンのOnClientClickにJavascriptのhistory.back()とすると
PostBackが発生した画面はPostBackが発生した回数だけ表示されます。
例)
A画面→B画面→C画面と遷移し、
C画面でPostBackが2回発生すると
history.back()ではC画面→C画面→B画面→A画面となります。
これをC画面→B画面→A画面と戻りたいのです。

C画面の呼び元は複数あるので、直接B画面へ遷移とは書けませんし
戻った時の画面の内容は以前の状態にしたいです。

そもそもhistory.back()で制御するものではないのかもしれません。
ご教示お願いいたします。
引用返信 編集キー/
■68283 / inTopicNo.2)  Re[1]: asp.net 戻るボタン(IEでない)
□投稿者/ WebSurfer (71回)-(2013/10/07(Mon) 14:32:31)
No68281 (yan さん) に返信
> ASP.NET Fw3.5 VB です。
> よろしくお願いいたします。
>
> ASP.NETの画面に「戻る」ボタンがあります。IEの戻るではありません。
> この「戻る」でひとつ前の画面に戻りたいのですが
> 戻るボタンのOnClientClickにJavascriptのhistory.back()とすると
> PostBackが発生した画面はPostBackが発生した回数だけ表示されます。
> 例)
> A画面→B画面→C画面と遷移し、
> C画面でPostBackが2回発生すると
> history.back()ではC画面→C画面→B画面→A画面となります。

それは当たり前です。

history.back() はブラウザの戻るボタンを押したのと同じで、それ以前にブラウザ
で表示した一つ前のページへ戻ります。

一方、PostBack というのは、今表示されているページに POST 要求をかけることで
す。従って PostBack 前後で表示されるページは同じで(サーバー側で何らかの
処置がされると、その結果の html コードは違うでしょうが)、戻るボタンを押すと
同じページの PostBack 前の状態に戻ることになります。

> これをC画面→B画面→A画面と戻りたいのです。
>
> C画面の呼び元は複数あるので、直接B画面へ遷移とは書けませんし
> 戻った時の画面の内容は以前の状態にしたいです。

そのあたり具体的にどうしたいのかよくわかりませんが、Wizard または MultiView
は使えませんか?

Wizard クラス
http://msdn.microsoft.com/ja-jp/library/3t61838w(v=VS.100).aspx

MultiView クラス
http://msdn.microsoft.com/ja-jp/library/system.web.ui.webcontrols.multiview.aspx

手順に従って複数のステップでデータを収集していく場合は Wizard、順次ではなく
条件に応じて変化する手順を表示する場合は MultiView がよさそうです。


引用返信 編集キー/
■68292 / inTopicNo.3)  Re[2]: asp.net 戻るボタン(IEでない)
□投稿者/ yan (3回)-(2013/10/08(Tue) 08:41:34)
ポストバックでない場合はページのRawUrlをセッションに放り込んで
戻るではセッションを見ながら戻ることにしました。

戻った時の画面は、前に表示されていた状態にはなりませんが
history.backでもAjaxを適用した画面だと値が復元されませんので
これで一旦解決とします。

ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -