Hace un par de días publiqué una pregunta sobre viewstate y después de ejecutar algunas pruebas he llegado a algunas conclusiones/resultados. En base a estos resultados, tengo algunas preguntas sobre cómo alguien haría ciertas cosas.Viewstate and controls en ASP.NET
Éstos son los resultados de mis pruebas que me encontré:
- Si UserControlA se carga desde
OnInit
de una página, entonces su estado de vista estará disponible enOnLoad
. Todos los demás controles que cargue usercontrolA desdeOnInit
, tendrán su viewstate listo en suOnLoad
. - Si usercontrolA se carga desde
OnLoad
de una página, su viewstate estará disponible enOnPreRender
. El resto de los controles que usercontrolA carga desde suOnLoad
, tendrán su viewstate disponible en suOnPreRender
. - Si usercontrolA se carga desde un evento (Ejemplo: botón de clic. Eventos desencadenados después de
OnLoad
y antes deOnPreRender
) de una página, su viewstate no estará disponible. Todos los otros controles que usercontrolA loades no tendrán su viewstate disponible.
Por lo tanto, en un mundo perfecto siempre cargaría todos los controles utilizando la situación n. ° 1, de modo que su viewstate esté disponible en su OnLoad
. Desafortunadamente, cuando necesita cargar un control desde un botón, haga clic o desde OnLoad
, ¿no hay forma de que el control obtenga su estado de vista antes del paso OnPreRender
?
He leído un montón de artículos sobre viewstate y pensé que lo entendía, pero trabajando en mi aplicación actual que carga controles de usuario que cargan otros controles de usuario, estoy teniendo un momento difícil para poder obtener viewstate en mi hoja (último en la cadena) usercontrol.
Se agradecen todas las sugerencias y/o enlaces.
Hola, este fue uno de mis problemas por los que estaba tratando de usar viewstate. Necesitaba marcar de alguna manera que mi control debe cargarse en la próxima devolución de datos después de que fue cargado por un controlador onclick en la devolución de datos anterior. Estaba pensando en usar el viewstate de la página que tendrá los valores. En mis pruebas parece que este podría ser el camino a seguir. – BlueChameleon