Cargar Controles de Usuario dinámicamente ASP.NET AJAX

En respuesta a la consulta de Julitogtu generada en los foros de MSDN, he generado un ejemplo práctico de su consulta. Ya que le aconsejé la utilización de controles de usuarios generados dinámicamente en detrimento de los famosos iframes.

Pero esta generación se complica especialmente si quieres cargar estos controles con llamadas asíncronas, por el hecho de que estos controles se generan en el servidor.

Lo primero que tenemos que hacer es tener los controles de usuario bien organizados para poderlos utilizar desde el cliente con llamadas a métodos de Página o servicios web, de esta manera evitaremos todo el tráfico que genera los updatePanels.

Yo he generado tres controles de usuarios distintos para probar diferentes posibilidades que nos podemos encontrar en la vida real.

  • Un formulario: Encontraremos los típicos controles asp.net para introducir los datos de un formulario.
  • Login: Dentro de este control tendremos otro ASP.NET para la creación de usuarios registrados.
  • Grid: Control de usuarios donde mostraremos los datos de una base de datos con un GridView. Sigue leyendo
Anuncios

Cancelar peticiones ASP.NET AJAX

ASP_NET-AJAX 

Para plantear la cancelación de una llamada asíncrona realizada con ASP.NET AJAX primero tenemos que tener en cuenta como hemos realizado esta petición, para realizar esta acción podemos elegir entre dos opciones diferenciadas.

  1. El control UpdatePanel que encapsula las peticiones web de forma asíncrona.
  2. Las llamadas a Métodos de Páginas o Servicios web desde el cliente.

1. UpdatePanel

Si hemos elegido la primera opción, cualquier control que realice una petición al servidor será controlada por el ScriptManager y podremos utilizar este mismo control para cancelar la tarea del cliente.

Para poder habilitar la cancelación al cliente usaré una barra de progreso la cual informará al usuario que se esta realizando una tarea y además tendrá un botón para poder cancelar este proceso.

Centrar UpdateProgress en un UpdatePanel ( JQuery )

Lo único que necesitamos es que el botón de la barra de progreso llame a una función javascript, que será la encargada de anular la petición. Sigue leyendo

AJAX TabControl – Tabs Optimizados II

En un artículo anterior explique como optimizar los TabPanels de ASP.NET AJAX Control Toolkit sin tener que extender ni modificar una línea de código, tan solo aprovechando la funcionalidad del UpdatePanel y cargar la información de los tabs solo cuando se selecciona y no cargar todos los datos al principio.

Pero si utilizas este truco junto a un UpdatePogress te das cuenta que al cargar la primera vez los datos no muestra el contenido del UpdatePogress y da una mala sensación de retraso al mostrar los datos.

Pero si luego lanzamos eventos que actualizan el UpdatePanel si se muestra el UpdatePogress correctamente. Sigue leyendo

Iframe Redimensionable con AJAX

Trabajar con iFrames es una tarea bastante ingrata sobre todo cuando te interesa que el contenedor se adapte al tamaño del contenido.
Buscando por internet encontré unos ejemplos muy interesantes:

  1. El de Microsoft http://support.microsoft.com/kb/278469/es
  2. El de los foros  http://www.forosdelweb.com/showthread.php?t=510457

Nos explican como aprovechar el evento onload del BODY para lanzar una función javaScript que recalcule el tamaño.

Pero que pasa si la página del iFrame utiliza Ajax.Net ?????

Pues que como ajax.net carga parcialmente la página no se lanza el evento onload de nuevo.Entonces seguí surfeando por la web y encontré otro artículo muy interesante http://netcodigo.webinfo.es/2007/02/02/controlar-llamadas-asincronas-con-aspnet-ajax/.

Con este artículo conocí la clase PageRequestManager clase encargada de controlar el renderizado parcial de las páginas, tenemos eventos, Métodos y propiedades para proporcionarnos este servicio. Sigue leyendo