Uso de ViewState

Las páginas ASP.NET, como el Web, no tienen estado. Se crean instancias de ellas, se ejecutan, se procesan y se desechan en cada uno de los recorridos de ida y vuelta al servidor. Como desarrollador Web, puede agregar la condición de estado utilizando técnicas conocidas, como el almacenamiento de estado en el servidor en el estado Session o devolviendo una página a sí misma. El formulario de registro que se muestra en la figura 1 es un buen ejemplo.
Funcionamiento de ViewState
El modo en que ViewState funciona no tiene nada de especial. Se trata simplemente de un campo de formulario oculto administrado por el marco de la página ASP.NET. Cuando ASP.NET ejecuta una página, los valores de ViewState correspondientes a dicha página y todos los controles se recopilan y formatean en una única cadena codificada y, a continuación, se asignan al atributo de valor del campo oculto del formulario (concretamente, ). Dado que el campo de formulario oculto forma parte de la página enviada al cliente, el valor de ViewState se almacena de forma temporal en el explorador de éste. Si el cliente decide devolver la página al servidor, también lo hará la cadena de ViewState. En la figura 2 podrá observar el campo de formulario de ViewState y su valor de devolución.
Durante la devolución, el marco de la página ASP.NET analiza la cadena de ViewState y rellena tanto las propiedades de éste correspondientes a la página como cada uno de los controles. A su vez, estos últimos utilizan los datos de ViewState para volver a su estado anterior.
Aún quedan tres aspectos relativos a ViewState que, aunque no son tan importantes, resultan bastante útiles.
Para utilizar ViewState, debe contar con una etiqueta de formulario del lado del servidor (<form runat="server">) en la página ASPX. Asimismo, es necesario disponer de un campo de formulario para que el campo oculto que contiene la información de ViewState se pueda devolver al servidor. Debe ser un formulario del lado del servidor para que el marco de la página ASP.NET pueda agregar el campo oculto cuando la página se ejecute en el servidor.
La página guarda por sí sola aproximadamente 20 bytes de información en ViewState que éste utiliza para distribuir los datos de devolución y sus valores a los controles adecuados durante la devolución. De este modo, incluso si ViewState se deshabilita en la página o aplicación, puede que en éste se almacenen varios bytes.
En los casos en los que la página no se devuelva, podrá eliminar ViewState de dicha página omitiendo la etiqueta <form> del lado del servidor.

Ejemplo de Uso:

ViewStat["Data"]=miDataSet

GridView1.Datasoruce=(DataSet)ViewState["Data"]

NightWish