ViewState
との違いは何ですか?また、それらControlState
がIsPostBack
どのように機能するのですか?
実際の用途はControlState
何ですか?
コントロール ステートは ASP.NET 2.0 内の新しい構造であり、実際にはビュー ステートにすぎません。ただし、これはビュー ステートであり、大きな利点があります。その利点は、コントロールを使用する他の開発者が状態を表示できるため、コントロールの状態を無効にできないことです。
http://www.codeproject.com/Articles/15300/Using-Control-State-in-ASP-NET-2-0
ViewState と ControlState の両方がコントロール プロパティを格納します。ViewState プロパティのみを無効にすることができます。これは、ページの最初の読み込みで読み込まれる ControlState にまったく影響しません。または、ページが postBack の場合、controlState は保存されたメモリから既に読み込まれます。
Control State と View State は同じなので、最初の質問は、データの重複ではありませんか? 次に、制御状態を無効にできないという利点があることに気付きます。次に、ビューステートに対して同じことができない理由を考えるかもしれません:)そのための新しい「コントロールステート」を発明する理由。これでデータの複製ができました。ビュー ステートを無効にする理由は、コントロール ステートの存在によって無効になりますよね?
ここで、Control State の真の利点が発揮されます。Control State は用途が広いです。つまり、カスタム コントロールは、コントロールの状態に何を格納するかを決定できます。ビュー ステートは、特にコントロールによって格納されることを意図していないため、一般的なすぐに使用できる機能です。コントロールの状態には特定の理由がある (そして信頼できる必要がある) ため、無効にするようには設計されていません。
ASP.NET バージョン 2.0 で導入されたコントロール ステートは、ビュー ステートに似ていますが、機能的にはビュー ステートから独立しています。ページ開発者は、パフォーマンスのために、ページまたは個々のコントロールのビュー ステートを無効にすることができます。ただし、制御状態を無効にすることはできません。コントロールの状態は、コントロールの重要なデータ (ページャー コントロールのページ番号など) を格納するように設計されており、ビュー ステートが無効になっている場合でもコントロールを機能させるために、ポストバックで使用できるようにする必要があります。既定では、ASP.NET ページ フレームワークは、コントロールの状態をページ内のビュー ステートを格納するのと同じ隠し要素に格納します。ビュー ステートが無効になっている場合や、Session を使用して状態が管理されている場合でも、コントロールの状態はクライアントに移動し、ページ内のサーバーに戻ります。ポストバックで、ASP.