The web is stateless protocol, so the page gets instantiated, executed, rendered and then disposed on every round trip to the server. The developer's code to add "statefulness" to the page by using Server-side storage for the state or posting the page to itself. When required to persist and read the data in control on web form, a developer had to read the values and store them in hidden variable (in the form), which were then used to restore the values. With the advent of .NET framework, ASP.NET came up with ViewState mechanism, which tracks the data values of server controls on ASP.NET webform.
Where it stored?
In effect, ViewState can be viewed as "hidden variable managed by ASP.NET framework!". When ASP.NET page is executed, data values from all server controls on the page are collected and encoded as single string, which then assigned to page's hidden attribute "< input type=hidden >", that is part of page sent to the client.ViewState value is temporarily saved in the client's browser.
Can we disable it?
ViewState can be disabled for a single control, for an entire page or for an entire web application.
The syntax is:
· Disable ViewState for control (Datagrid in this example)
< asp:datagrid EnableViewState="false" ... / >
· Disable ViewState for a page, using Page directive
< %@ Page EnableViewState="False" ... % >
· Disable ViewState for application through entry in web.config
< Pages EnableViewState="false" ... / >