Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

PRB: Server controls persist their state when EnableViewState is set to False


View products that this article applies to.

Symptoms

The following server controls persist their information across requests even when the control ViewState (the EnableViewState attribute) is set to False:
  • The TextBox control.
  • The CheckBox control.
  • The RadioButton control.

↑ Back to the top


Cause

This behavior occurs because the ViewState of a control is only one of the methods that are used to persist a control's attributes across requests. In the server controls that are mentioned in the "Symptoms" section, attributes that are not normally posted to the server through the form-get or the form-post are handled by the ViewState. These values include attributes of the control, such as BackColor. Attributes that are normally posted to the server are handled by the IPostBackDataHandler interface. An example of such an attribute is the checked attribute of the CheckBox control.

↑ Back to the top


Status

This behavior is by design.

↑ Back to the top


More information

Steps to Reproduce the Behavior

  1. Create an .aspx page with a Web Forms CheckBox control(ID=CheckBox1) and a Button control.
  2. Add the following Microsoft Visual C# code for the Page_Load event:
    private void Page_Load(object sender, System.EventArgs e)
    {
    	if(!IsPostBack)
    	{
    		CheckBox1.BackColor = Color.FromName("Tomato");
    	}
    }
    					
  3. Verify that the EnableViewState property for the CheckBox control is set to True.
  4. Save and compile your project, and then browse to the .aspx page.

    Even though the background color for the CheckBox control is set when you first request the .aspx page, it is maintained across requests when you submit the form with the button.
  5. Set the EnableViewState property of the Checkbox control to False.
  6. Save and compile your project, and then browse to the .aspx page with a new instance of the browser.
  7. Click to select the check box for the checked attribute. When you resubmit the .aspx page with the button, the background color of the Checkbox control is lost. However, the checked state of the control is maintained.

↑ Back to the top


Keywords: KB316813, kbwebforms, kbstate, kbservercontrols, kbprb

↑ Back to the top

Article Info
Article ID : 316813
Revision : 9
Created on : 2/23/2007
Published on : 2/23/2007
Exists online : False
Views : 355