StateBag Class
Assembly: System.Web (in system.web.dll)
View state for a page or control is the cumulative property values, or view, of that page or control. You can access this class through the Control.ViewState property. Controls can also store essential state information in control state, but that information is not stored as a StateBag object.
This class is the primary storage mechanism for all HTML and Web server controls. It stores attribute/value pairs as strings associated with the control. It tracks changes to these attributes only after the OnInit method is executed for a page request, and saves the changes to the page's or control's view state.
This class implements a dictionary, and you can add items to it or remove items from it as you would any dictionary object. For more information about data collections, such as dictionaries, see Collections and Data Structures.
The following code example demonstrates a composite Label control that has Text and FontSize properties. These properties are saved to and retrieved from view state when the Control.Render method is called on the control.
package ViewStateControlSamples;
// This control renders values stored in view state for Text and
// FontSize properties.
import System.*;
import System.Web.*;
import System.Web.UI.*;
public class Label extends Control
{
// Add property values to view state with set;
// retrieve them from view state with get.
/** @property
*/
public String get_Text()
{
return ((String)(get_ViewState().get_Item("Text")));
} //get_Text
/** @property
*/
public void set_Text(String value)
{
get_ViewState().set_Item("Text", value);
} //set_Text
/** @property
*/
public int get_FontSize()
{
return (int)Convert.ToInt32(get_ViewState().get_Item("FontSize"));
} //get_FontSize
/** @property
*/
public void set_FontSize(int value)
{
get_ViewState().set_Item("FontSize", (Int32)value);
} //set_FontSize
protected void Render(HtmlTextWriter output)
{
output.Write("<font size=" + this.get_FontSize() + ">"
+ this.get_Text() + "</font>");
} //Render
} //Label
// This control renders values stored in view state for Text and FontSize properties. import System import System.Web import System.Web.UI package ViewStateControlSamples { public class Label extends Control { // Add property values to view state with set; // retrieve them from view state with get. public function get Text() : String { return String(ViewState["Text"]); } public function set Text(value : String) { ViewState["Text"] = value; } public function get FontSize() : int { return int(ViewState["FontSize"]); } public function set FontSize(value : int) { ViewState["FontSize"] = value; } protected override function Render(output : HtmlTextWriter) { output.Write("<font size=" + this.FontSize + ">" + this.Text + "</font>"); } } }
- AspNetHostingPermission for operating in a hosted environment. Demand value: LinkDemand; Permission value: Minimal.