Ciclo de eventos de las páginas ASP.NET, ¿donde van los eventos de los controles?
Esta va a ser una entrada bastante corta, ya que ando liado con un par de proyectos personales y algún que otro curso.
Cuando estoy desarrollando webs utilizando ASP.NET WebForms siempre dudo a la hora de enlazar los eventos, cierto es que la mayoría de las veces se utilizan los eventos más recurrentes (Load, Init,etc.) pero cuando se quiere afinar un poquito más, por ejemplo cuando tenemos varios niveles de especializaciones/generalizaciones en las páginas, y queremos manejar algún comportamiento común en alguno de los niveles, es conveniente tener claro el comportamiento, y orden de ejecución de estos eventos.
El orden de ejecución de los eventos dentro del ciclo de vida de la página básicamente es el siguiente:
PreInit
PreInit
Init
InitComplete
PreLoad
Load
ControlEvents
LoadComplete
PreRender
PreRenderComplete
SaveStateComplete
Unload
Si os habéis fijado he marcado una entrada en negrilla, "ControlEvents", este no es un evento del ciclo de la página propiamente dicho, me explico. Como ya sabréis la "magia" de los postbacks en las páginas ASP.NET con WebForms, se basan en hacer un submit del formulario en principio sobre la misma página.
Cada vez que ocurre un postback, se ejecuta el ciclo completo de eventos de la página con la salvedad, que se va a ejecutar el evento del control que ha provocado el postback, y esto ocurre precisamente entre el evento de Load y LoadComplete.
De modo que si queremos acceder al estado de una control tras un postback, o queremos establecer un comportamiento general para las páginas en función de la llamadas ya sabemos donde hacerlo.
Esto se complica un poco más, si queremos también jugar con los eventos de los controles de usuario, donde el orden se va a entrelazar con los eventos de las páginas. Pero casi es materia para otro post :-)
Podéis ampliar toda la información de esto en el siguiente enlace:
http://msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspx
Espero que os haya resultado de utilidad.
Nos leemos, René Pacios
No hay comentarios:
Publicar un comentario