Postback en ASP.NET
Enviado por XIMESPINDOLA • 8 de Noviembre de 2012 • Tesis • 1.857 Palabras (8 Páginas) • 972 Visitas
GUIA 3
Postback en ASP.NET
Son las idas y venidas del servidor, es decir, la propiedad postback es la manera de saber cuando una página se acaba de cargar por primera vez o se ha cargado porque se ha realizado alguna acción y ha tenido que ir y volver al servidor. Esta propiedad se puede saber así:
page.IsPostBack
Si esta propiedad está a False, entonces la página se ha cargado por primera vez, si por el contrario está a True, es que se está ejecutando por segunda vez o más.
Describa su ciclo de vida paso a paso
ASP.NET con AJAX provoca en el servidor los mismos eventos que durante un PostBack en el ciclo de vida de una página. Pero además, cuando tenemos habilitado AJAX en nuestra página, provoca eventos en el ciclo de vida cliente. El conocer estos eventos y su ciclo es muy importante para tener el mayor control y manejo posible de las solicitudes asíncronas.
Estos eventos en el cliente son provocados por las clases de la librería de AJAX .NET. Esta librería y las instancias de sus clases están a nuestra disposición automáticamente al incluir un control ScriptManager al inicio de nuestras páginas.
Son dos las clases principales que provocan estos eventos durante el ciclo de vida de la página en el cliente. Tenemos la clase Sys.Application que para entendernos es similar a la clase Page del objeto de servidor. Y tenemos la clase Sys.WebForms.PageRequestManager.
Veamos por partes como ocurre todo tanto durante un petición síncrona (PostBack), como una petición asíncrona (AJAX).
Ciclo de eventos cliente durante un PostBack
Cuando arrancamos por primera vez nuestra aplicación, o cuando hacemos un viaje al servidor de nuevo, el ciclo de eventos que se provocan en el cliente son los siguientes.
• Window.load(). Este evento del DOM como ya sabemos se dispara cuando se carga nuestra página.
• PageRequestManager.pageLoaded(). Este evento se dispara tanto durante una llamada asíncrona como una síncrona cuando se ha actualizado todo el contenido de la página. Es el evento ideal para determinar en el código cliente si la devolución de datos fue realizada por AJAX o por un PostBack.
• Application.init(). Se dispara cuando se terminan de cargar todos los script de cliente pero antes de que se cree ningún objeto de estos. Es decir, que si intentamos acceder durante este evento a cualquiera de los objetos declarados en nuestros script recibiremos un error. Otra cosa muy importante a tener en cuenta en este evento es que se dispara una única vez por cada devolución de datos síncrona, nunca durante una devolución asíncrona.
• Application.load(). Este evento se dispara cuando se han cargado todos los objetos de los script de la página.
• Application.unload(). Entra en acción antes de eliminar todos los objetos script de la página.
• Window.unload(). Este evento del DOM como se dispara cuando se cierra nuestra ventana del explorador.
Ciclo de eventos cliente durante AJAX en .NET
Ahora viene lo que realmente debemos tener en cuenta. No olvidemos que estamos trabajando bajo el esquema de un control ScriptManager y un control UpdatePanel en nuestra página. Esto significa que cuando el servidor nos devuelve los datos, se realiza una actualización parcial de la página, en concreto, solo obtenemos el HTML necesario para repintar el contenido de los elementos del interior del UpdatePanel.
• PageRequestManager.initializeRequest(). Este es el primero de los eventos que se disparan cuando provocamos una llamada AJAX. En realidad, durante este evento aún no ha comenzado la solicitud, por lo tanto, es el evento ideal para cancelar la llamada desde nuestro código cliente.
• PageRequestManager.beginRequest(). Se provoca antes de que se envíen los datos al servidor. Es el último evento que se produce en el cliente. Es el momento ideal para llamar a un script personal que inicie una animación que notifique al usuario que se está procesando la devolución de datos. El control UpdateProgress hace uso de este evento para mostrar su contenido.
• PageRequestManager.pageLoading(). Se dispara después de recibir la respuesta del servidor durante una llamada AJAX, pero antes de actualizar cualquier contenido en la página. Es una oportunidad perfecta para realizar cualquier acción personalizada, antes de ser pintados, sobre los datos recibidos desde el servidor, como filtrarlos o formatearlos. También es el evento usado para enviar datos a los controles que no están incluidos en el updatepanel.
• PageRequestManager.pageLoaded(). Este evento se dispara tanto durante una llamada asíncrona como una síncrona cuando se ha actualizado todo el contenido de la página. Es el evento ideal para determinar en el código cliente si la devolución de datos fue realizada por AJAX o por un PostBack.
• Application.load(). Este evento se dispara cuando se han cargado todos los objetos de los script de la página.
• PageRequestManager.endRequest(). Se dispara después del repintado parcial de la página y se devuelve el control al explorador. También se dispara este evento cuando se ha producido un error durante la devolución de datos asíncrona. Si se produce un error, la página no se actualiza por lo tanto los datos devueltos por el servidor no son mostrados. Se puede utilizar este evento para proporcionar una notificación de error personalizada a los usuarios o para registrar los errores. También se utilizan para ejecutar script personalizados al terminar la devolución de datos asíncrona.
La clase Sys.Application se instancia directamente, no así la clase Sys.WebForms.PageRequestManager que para instanciarla debemos utilizar el métodogetInstance().
Los eventos de ambas clases se declaran al estilo de los delegados de C#, y siempre siguen la misma sintaxis: add_nombreEvento (nombreFuncion).
Indique y defina los tipos
Tipos de Post Back
Hay 2 tipos de PostBack,
...