戸惑うVIEWSTATE


ViewStateはコントロール開発でよく使われます.
 
ViewStateの役割:
1.HashTableと同様に、キー値により各コントロールに各種情報を格納する.
2.値を初期化した後、ViewState値の変化を追跡します.
3.シーケンス化、シーケンス化機能を提供し、ViewStateの値をクライアントformの非表示ドメインに配置する.
4.PostBackの場合、自動的にViewState値が復元されます.
 
View Stateでできないこと:
1.クラス変数のステータスを自動的に保持します.
2.各ページにロードされるステータス情報を記憶します.
 
ViewStateはSystemで定義する.Web.UI.Controlクラスの保護プロパティ(protected)、すべてのサーバ側コントロール、ユーザーコントロール、pageはこのクラスから派生しています.この属性の実際のタイプはSystemですWeb.UI.StateBag.
サーバ側コントロールは,すべてでなくてもほとんどの属性のバックエンドメモリとしてViewStateを利用する.
 
通常、属性値を格納する方法は次のとおりです.
public string Text { 
   get { return _text; }
    set { _text = value; }
}

 
 
でもasp.Netのコントロールでは、通常はそうではありません.対応するコードは次のようになります.
public string Text {
    get { return (string)ViewState["Text"]; }
    set { ViewState["Text"] = value; }
}