René Pacios

/* Overflow My Brain & More */

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

Acerca de René

René Pacios es un apasionado de la tecnología, autodidacta, emprendedor, le encanta el desarrollo web, para moviles, aplicaciones, todo aquello que automatice tareas y haga que las máquinas trabajen para él. Es un gran fan de las tecnologías Microsoft, y le encanta estar a la última siempre que el tiempo se lo permite. Siempre quiso ser cantante, pero creo que en esta vida se va a quedar sólo en canta-mañanas

No hay comentarios:

Publicar un comentario