Guidelines to use ViewState
Viewstate is the mechanism by which web page object and child control object data can be maintained between page requests. Any server controls that can eliminate html tags on the browsers request are eligible to be placed into viewstate. Hidden fields are used on the client side (browser) to represent viewstate data. When the page is post backed to the server, values on the hidden field are used to construct the web page and its server controls.
Disable EnableViewState whenever possible:
By default all controls are viewstae enabled. you can disable the viewstate by the attribute "EnableViewState" setting to false. Using lots of viewstate can be performance problem so you must disable viewstate for the controls that dont have to retain their data between page requests.
Identify Viewstate Contributors using Asp.Net trace facility:
You can use asp.net trace facility to example the controls that contribute to viewstate. You can view viewsate size for each control with trace facility so that you can understand which control is responsible for generating huge viewstate data and ultimately performance problems when receiving and posting pages.