ASP.NET AJAX - Triggers(Disparadores) del UpdatePanel

0 comentarios

Por default los controles dentro de un UpdatePanel actúan como disparadores del mismo, mientras que los controles que están sobre la pagina ocasionan un PostBack de toda la pagina de forma síncrona.
Se puede configurar un control externo al UpdatePanel para que ocasione el recargado asíncrono del panel.
Por código:



Por vista Diseño:



Los Tipos de Triggers son:
- PostBackTrigger: el control dentro del UpdatePanel provocará un PostBack completo de la página.
- AsyncPostBackTrigger: se usa para indicar que el control tanto si se encuentra dentro o fuera del UpdatePanel debe ocasionar una recarga asíncrona del mismo.

Por defecto la propiedad ChildrenAsTriggers es true permite que el control refresque asíncronamente el UpdatePanel. Si le ponemos el valor false deberemos usar el método Update() para provocar la carga asíncrona.

ASP.NET AJAX (Asynchronous Javascript And Xml)

0 comentarios

En este post quiero describir brevemente que es AJAX y cuales son su componentes esenciales. El objetivo de AJAX es conseguir que las páginas web respondan lo más rápidamente posible a las peticiones de los usuarios evitando recargar toda la página con información desde el servidor. Sus componentes principales en VS 2008 son:
- ScriptManager: registra el script de la librería cliente de AJAX en la pagina permitiendo ejecutar del lado del cliente una serie de funciones y extensiones de Javascript tales como el pintado parcial de las paginas o llamadas a servicios web desde código cliente.
Para gestionar los errores podemos usar:
a) Gestionar el evento AsyncPostBackError del ScriptManager que se dispara al producirse un error durante el PostBack asíncrono.
b) Poner texto en la propiedad AsyncPostBackErrorMessage que es el mensaje que se envía al navegador y se presenta en un alert.
Para gestionar el tiempo de espera usar AsyncPostBackTimeOut en el que indicamos el tiempo tras el cual el ScriptManager mostrara el error de falta de respuesta del servidor.
- UpdatePanel: permite que solo se refresquen los controles ubicados dentro suyo, sin necesidad de volver a cargar toda la página. Esto es posible gracias a la clase PageRequestManager que el ScriptManager incluye en el cliente.
La propiedad UpdateMode indica las circunstancias bajo las que se actualiza, puede ser:
UpdatePanelUpdateMode.Always el contenido del UpdatePanel se actualiza en todos los postbacks que ocurran en le pagina.
UpdatePanelUpdateMode.Conditional el contenido del UpdatePanel solo se actualiza cuando se dispara un Trigger de ese panel o a través de un Update() o si cuando el Panel esta anidado dentro de otro y este se actualiza.