OnInit ViewState Page : Javier Luna blog

Sunday, December 16, 2007

OnInit ViewState Page

Cuando estas construyendo estructuras complejas sobre el formulario de tu aplicacion ASP.NET tendras algunas dificultades que superar.

Los formularios de facturación u otros relativamente similares traen consigo ciertos retos tecnicos. Pues sobre este convergen una serie de lookups, que han sido ingresados a traves de otros modulos de la aplicacion, para que estos sean seleccionados por el usuario dentro del formulario de la factura.

Muchas veces el formulario muestra controles cuyos elementos estan en función de algunas lookups cuyo numero de items depende del cliente seleccionado u otra variable.

En terminos sencillos no esta determinado en tiempo de diseño la estructura final del formulario.

En ese sentido, se tiene la necesidad de crear elementos en tiempo de ejecución sobre el formulario web, cuya informacion es obtenidad de la base de datos.

Por definicion la construcción de elementos debe estar implementada sobre el OnInit de la pagina. Pero sucede un pequeño detalle, el ViewState se encuentra vacio en ese estado del ciclo de la pagina web. ¿Que hacer?

El ViewState se llena despues del OnInit y antes OnLoad de cada pagina ASPx dentro del mundo ASP.NET.

Cuando te encuentras programando dentro del OnLoad todos y cada uno de los controles que este definidos allí, se encuentran ya con el valor que hayan tenido previamente, de forma automatica. Es la naturaleza de ASP.NET.

Un solucion inmediata, para superar la dificultad del ViewState en el OnInit, pasa por recordar la forma tradicional de como obtener informacion del post de la pagina.

String something = this.Request.Form( "_something" );

Vale recalcar que _something es un elemento dentro del formulario de mi pagina.

De esta manera podras recuperar el valor de algun control, que dentro de la implementacion que estes realizando, te implique algun grado de sensibilidad con respecto a los demas elementos dentro del formulario.

No comments: