When the page is posted back to the server, the server can
parse, validate, and apply this view state data back to the page's tree of
controls. View state is a very powerful capability since it allows state to be
persisted with the client and it requires no cookies or server memory to save
this state. Many ASP.NET server controls use view state to persist settings
made during interactions with elements on the page, for example, saving the
current page that is being displayed when paging through data.
There are a number of drawbacks to the use of view state,
however. First of all, it increases the total payload of the page both when
served and when requested. There is also an additional overhead incurred when
serializing or deserializing view state data that is posted back to the server.
Lastly, view state increases the memory allocations on the server.
Several server controls, the most well known of which is the DataGrid, tend to
make excessive use of view state, even in cases where it is not needed. The
default behavior of the ViewState property is enabled, but if you do not need it,
you can turn it off at the control or page level. Within a control, you simply
set the EnableViewState property to false, or you can set it globally within
the page using this setting.
<%@ Page EnableViewState="false" %>
It is also possible to disable the view state for a particular
<asp:textbox id=text1 runat=server EnableViewState="false"></asp:textbox>
If you are not doing postbacks in a page or are always
regenerating the controls on a page on each request, you should disable view
state at the page level.