WebDataGrid の DataViewState と ViewState
本記事のまとめ
- DataViewState (デフォルトで無効)は行コレクションの情報のみを保持
- ViewState はその他全ての情報を保持
はじめに
ASP.NET の ViewState についてはいろいろな見解がありますが、近年では ViewState というコンセプト自体について細かいところにまで賛否の声があり、とくに使用に関しては批判の声があがることも少なくもありません。
ViewState を正しく使用することでパフォーマンス向上に役立てることも可能ですし、開発上の生産性向上に役立つ点もいくつかあります。この記事では WebDataGrid の ViewState に関連する2つのプロパティ、EnableDataViewState と EnableViewState プロパティについて説明していきます。
追記:VewState の動作と仕組みついての基本的な知識を身につけるため、以下の記事を読まれることをお勧めします。
DataViewState について
データ用 ViewState というコンセプトは ViewState が正しく取り扱われるようにというインフラジスティックスのエンジニア達の想いから生まれました。通常 ASP.NET コントロールはコントロールのほぼ全てのプロパティの値を ViewState に格納します。WebDataGrid ではグリッドの全てのデータを HTML と ViewState に格納するのではなく、データとグリッドのプロパティを別々の場所に格納するよう設計されています。このため、グリッドの行コレクションの情報のみが DataViewState という入れ物に格納されます。データが明示的なリクエストの際に ViewState に含まれるよう、EnableDataViewState プロパティはデフォルトで false に設定されています。
注:ページング機能が有効な際に DataViewState プロパティが有効にされると、現在表示中ページの行コレクションのみが ViewState コンテナー内で追跡されます。
ViewState について
WebDataGrid の ViewState には行コレクションの情報は格納されませんが、CSS スタイル設定や行のメタデータは格納されます。このため行がカスタマイズされると、それらのデータは DataViewState には格納されませんが、変更された設定は ViewState に保持されます。これによってページ上に保持される ViewState の量を縮小することが可能になります。
デフォルトでは EnableViewState プロパティは true に設定されています。
