Tengo una página bastante compleja que construye dinámicamente controles de usuario dentro de un repetidor. Este repetidor debe estar vinculado durante el evento de la página Init antes de que se inicialice ViewState
o los controles de usuario creados dinámicamente no retendrán su estado.¿Qué haces cuando no puedes usar ViewState?
Esto crea un Catch-22 interesante porque el objeto al que debo vincular el repetidor necesita crearse en la carga inicial de la página y luego persistir en la memoria hasta que el usuario opte por abandonarlo o guardarlo.
Como no puedo usar ViewState
para almacenar este objeto, pero lo tengo disponible durante Init, me he visto forzado a almacenarlo en Session.
Esto también tiene problemas, porque tengo que anular explícitamente el valor de la sesión durante las devoluciones para no emular cómo funciona ViewState
.
Tiene que haber una mejor manera de indicar la administración en este escenario. ¿Algunas ideas?
Editar: Algunas buenas sugerencias sobre el uso de LoadViewState
, pero sigo teniendo problemas con el estado no se restaura cuando lo hago.
Aquí es un poco si la estructura de la página
Página -> control de usuario -> Repetidor -> cantidad de N UserControls dynamicly creada.
Pongo el LoadViewState
reemplazado en el elemento primario UserControl
, ya que está diseñado para ser completamente encapsulado e independiente de la página en la que se encuentra. Me pregunto si ahí es donde está el problema.
¿Estás utilizando databinding? Nunca lo uso con asp.net y podría cambiar el campo de juego de alguna manera. Pero, LoadViewState es el evento que se debe usar para restaurar los controles dinámicos en el tiempo posterior a la devolución. PageLoad definitivamente es demasiado tarde en el ciclo de vida. – DancesWithBamboo