9

ページAとページBがあります。ページAでは次のことができます。

  • ページAで処理を実行します(たとえば、リストボックスで項目を選択します)。これにより、ページAのUpdatePanelが追加情報とともに再描画されます。
  • ページBに移動します。これはボタンとを使用して行われResponse.Redirectます。

ここでの問題は次のとおりです。

  1. ユーザーはページAで作業を行います。ページAは初期状態とは異なります。
  2. ユーザーはページBに移動します。
  3. ユーザーがブラウザの戻るボタンを押します。

何が起こるか:初期状態のページA が表示されます。
私がしたいこと:最終状態のページAが表示されます(つまり、リストボックスで「正しい」項目が選択されています)。

ScriptManager.AddHistoryPointについて知っています!私が見る限り、それは私の問題を解決しません:

  • AddHistoryPoint Aページで何かが行われるたびに電話をかけることができました。これは、ブラウザの履歴に大量のエントリが散らばっているため、悪いことです。(別のリストボックス項目が選択されるたびに新しいエントリが表示されます。)しかし、UpdatePanelを使用することで、まさにそれを避けたいと思います。もちろん、ReplaceLastHistoryPoint方法があればそれは完璧でしょうが、私はそれを見つけられませんでした...

  • ページAの最後の状態のみを保存するために、AddHistoryPoint直前に呼び出しようとしましたが、残念ながら、それは機能しません(履歴ポイントは保存されません)。どのように機能するかを考えると、これは驚くべきことではありません。Response.RedirectResponse.Redirect

私が逃した解決策はありますか?重要な場合に備えて、.NET3.5SP1を使用しています。

4

2 に答える 2

2

サーバーで AddHistoryPoint を呼び出す代わりに、クライアントで Sys.Application クラスhttp://msdn.microsoft.com/en-us/library/vstudio/cc488025(v=vs.90).aspxを使用して addHistoryPoint を呼び出すことができます。

したがって、クライアント側のクリック リスナーをボタンに追加し、ボタンがポスト バックしてリダイレクトする前に、クライアントで addHistoryPoint を追加します。

于 2012-12-20T15:35:19.850 に答える