Lo que pasa en Las Vegas, se queda en Las Vegas
O, lo que pasa en AJAX, se queda en AJAX
El día de hoy descubrí de mala manera que debo poner más atención a las bondades de AJAX, y que no debo perder de vista en ningún momento a lo que hace. Estoy haciendo una aplicación muy sencilla de captura y edición de formatos en ASP .NET 2.0, y estoy utilizando AJAX Extensions por primera vez. Me da un poco de pena hablar del problema que tuve pues fue debido por entero a una distracción de mi parte.
Una de la características más importantes que tienen los extensores de AJAX es la facultad de controlar los eventos de postback y presentar al usuario los cambios solamente en el control que ha cambiado. A pesar de saber esto pretendí que un usercontrol lanzara un evento que sería observado por la página donde se encontraba alojado, la página debía realizar algunas tareas adicionales una vez que se levantaba ese evento, pero dicho control estaba incluido en un AJAX UpdatePanel.
Por supuesto el evento era lanzado por mi control y la página estaba al tanto de él, pero no me era posible ver el efecto de ello, pues el postback se realizaba solamente para el contenido del UpdatePanel. En una imperdonable distracción (al menos yo todavía tengo problemas para perdonármelo) pensé que algo estaba fallando y que, o bien el evento no estaba siendo levantado o que la página no estaba reaccionando. Esta de más decir que me tomó un buen tiempo (no diré cuanto) percatarme de qué estaba sucediendo y arreglarlo.
Este post lo he puesto para ayudar a algún otro programador distraído como yo, a ahorrar un poco de tiempo y de angustia, recordándole que debe poner un poco más de atención cuando use un AJAX UpdatePanel, en vez de buscar las razones más inverosímiles de porque un evento no estaría funcionando cuando ha sido programado de la misma manera a como siempre ha sido hecho.
Recuerden, si algo pasa dentro de un AJAX UpdatePanel, “se queda en el UpdatePanel”, al menos hasta que el contenedor de quien debe reaccionar haga un postback. Existe la manera de forzar que un control de AJAX UpdatePanel mande el postback, para esto debe utilizarse la propiedad “UpdateMode” y su valor debe ser establecido en “Always”, esto hará que el control actualice su contenido.

Escribe un comentario
Tienes que iniciar sesión para escribir un comentario.