現在オフラインです。再接続するためにインターネットの接続を待っています

[PRB] EnableViewState が False に設定されていても、サーバー コントロールの状態が維持される

この記事は、以前は次の ID で公開されていました: JP316813
現象
以下のサーバー コントロールでは、コントロールのビューステート (EnableViewState 属性) が False に設定されている場合でも、その情報が要求間で維持されます。
  • TextBox コントロール
  • CheckBox コントロール
  • RadioButton コントロール
原因
この現象は、コントロールのビューステートは、要求間でコントロールの属性を維持するのに使用される方法の 1 つに過ぎないことが原因で発生します。「現象」で記載されているサーバー コントロールで、form-get または form-post を通じてサーバーに通常送信されない属性は、ビューステートにより処理されます。これらの値には、コントロールの BackColor などの属性が含まれます。サーバーに通常送信される属性は、IPostBackDataHandler インターフェイスにより処理されます。このような属性の例としては、CheckBox コントロールの Checked 属性があります。
状況
この動作は仕様です。
詳細

現象の再現手順

  1. .aspx ページを作成し、Web フォームの CheckBox コントロール (ID=CheckBox1) と Button コントロールを配置します。
  2. 以下の Microsoft Visual C# コードを Page_Load イベントに追加します。
    private void Page_Load(object sender, System.EventArgs e){	if(!IsPostBack)	{		CheckBox1.BackColor = Color.FromName("Tomato");	}}					
  3. CheckBox コントロールの EnableViewState プロパティが True に設定されていることを確認します。
  4. プロジェクトを保存してコンパイルし、.aspx ページをブラウザで表示します。

    CheckBox コントロールの背景色は、.aspx ページが最初に要求されたときに設定されますが、ボタンをクリックしてフォームを送信すると、要求間でも設定が維持されます。
  5. Checkbox コントロールの EnableViewState プロパティを False に設定します。
  6. プロジェクトを保存してコンパイルします。ブラウザの新しいインスタンスを使用して .aspx ページを表示します。
  7. チェック ボックスをオンにして、Checked 属性を変更します。ボタンをクリックして .aspx ページを再送信すると、Checkbox コントロールの背景色が失われます。ただし、コントロールのチェック状態は、維持されています。
view state
プロパティ

文書番号:316813 - 最終更新日: 01/24/2006 08:10:16 - リビジョン: 2.5

  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • kbprb kbservercontrols kbstate kbwebforms KB316813
フィードバック