DataGrid からの ViewState の負荷を軽減しようとしていますが、期待どおりに機能していません。私のページが最初に実行されるとき (そして私のデータグリッドは空です)、ビューステートは約 1794 バイトです。データグリッドを で埋めるとEnableViewState="true"
、ViewState は 4,074,656 バイトになり、データグリッドを同じデータで埋めると、EnableViewState="false"
、viewstateは2,477,356バイトになります。この数がほぼ半分になっていることはわかっていますが、それでもまだ大きな数です (グリッドのサイズに比例しています)。データグリッドから何も来ていない場合、これは間違いなく 10,000 未満 (元の 1794 よりもそれほど大きくない) であると予想されます.. なぜまだそんなに高いのですか? データグリッドからのビューステートの負荷を減らすために他に何かしなければならないことはありますか? ちなみに、データグリッドがいっぱいになると、約1600行27列になります。
質問する
212 次
1 に答える
0
データ層クラス (DataGrid のバインドに使用) から取得した DataTable も、並べ替えの目的で格納されていることに気付きました (非常に悪い習慣です)。すべてのデータが隠しフィールド ViewState[]
に格納されていることがわかりました。__VIEWSTATE
ViewState[]
結果を認識せずに、検索オプションフィールドを保存/取得し、並べ替えのために再クエリするのが面倒だったため、保存されていました。EnableViewState="true"
基本的に、私の DataGridには があり__VIEWSTATE
、サイズが 2 倍になりました。私はこの間違いから多くのことを学びました。これに出くわした他の人も何かを学ぶことを願っています。
于 2012-07-11T00:26:35.757 に答える