1

ViewState 情報をセッションなどに保存して、ページから離れたときに何らかの方法で永続化することはできますか? その後、そのページに戻ったときにビュー ステートをリロードすると、行った選択が保持されます。

バックグラウンド

データを選択したり、フィルタリングや並べ替えを行ったりできるレポート ページと、レポート ページから選択したデータをさまざまな方法で表示できるグラフ ページの 2 つのページがあります。

ユーザーがさまざまなプレゼンテーションをテストした場合、戻るボタンを使用するだけで、ユーザーがレポート ページに戻るまでにかなりの数のクリックが必要になる可能性があります。レポートページへの直リンクをお願いします。

  • QueryString を使用してコントロールの状態を保存することはできません。
  • アプリケーション全体の ViewState ストレージをカスタマイズできません。
4

4 に答える 4

4

はい、Viewstate をデータベースのようなものに保存することは可能です。ビューステート プロバイダーの 1 つを実装するだけで済みます。SqlViewStateProvider を使用した例については、こちらを参照してください。

編集:投稿を読み直して、アプリケーション全体のビューステートの保存方法をカスタマイズできないと言ったことを確認してください。その場合は、セッションに保存することを検討してください。Scott Hanselman は、ここでそれについて説明します

于 2009-01-23T14:02:47.373 に答える
1

リンクは、JavaScript を使用して、必要な数のページに自動的に戻ることができます。window.history を見てください。前方のページ数を数えることができれば、その数だけ戻ることができます。

ViewState は、ユーザー コントロールの状態を保持するように既に設計されています。ユーザーが選択を行い、その選択がフル ページ ポストバックを使用してサーバー側で処理される場合、コントロールの新しい状態は ViewState (隠し入力 __VIEWSTATE) に保存されます。

レポートが AJAX と部分的なページ ポストバックを使用している場合、いずれにせよページの ViewState は取得されません。

于 2009-01-23T16:50:50.123 に答える
0

これは悪い考えです。クエリ文字列を使用してください。なぜそれらがオプションではないのか知りたいです。

于 2009-01-23T16:52:43.427 に答える