グリッド コントロールは、多くのコントロールのコンテナーとして機能します。各コントロールは、ViewState に多くの情報を格納します。
デフォルトでは、ViewState は非表示のコントロールに格納されます。これは、ページ要求ごとにクライアントに送信されることを意味します。このオーバーヘッドを回避するには、EnableViewState を false に設定します。
<asp:GridView ID="GridView1" runat="server" EnableViewState="false">
ViewState と PostBack は、まったく無関係な 2 つのエンティティです。ViewState は、コントロールが保持する必要のあるすべての情報を格納します。PostBack は、ユーザーがページに情報を送り返すことのみを指します。
ただし、ViewState は、最後の PostBack でユーザーが入力した値を記憶するのにも非常に役立ちます。ViewState が非常に大きく、ユーザーに送信したくない場合は、セッションに保存することを検討してください。これを行うには、PageStatePersister をSessionPageStatePersisterに設定します。
SessionPageStatePersister は、ブラウザー セッションに関連付けられたサーバー セッションを使用してデータを格納します。隠しフィールドの代わりにセッションを使用すると、ブラウザーとの間で送受信されるページ サイズの増加を回避できます。多くの場合、ページの状態はマークアップ全体の重要な部分です。ただし、このデータをセッションに保存すると、貴重なサーバー リソースが消費されます。