Con la aparición de JQuery, los desarrolladores hemos descubierto un nuevo mundo de posibilidades. Nos hemos dado cuenta, de que por fin, vamos a dejar de ser meros codificadores a integrar efectos atractivos de diseño a nuestros desarrollos.
Todo hay que decir, que esto de JQuery engancha y es que rápidamente empezaremos a abusar de su uso y sobrecargamos un simple formulario, en una especie de aplicación Silverlight. Y es que la posibilidad que nos brinda de crear menús, tooltips animados y un largo etcetera en solo 3 lineas de código JavaScript tiene que enganchar si o si.
El problema viene cuando después de haberlo probado para valorar sus posibilidades y decidimos colocarlo en el desarrollo que estamos trabajando, nos damos cuenta que no es oro todo lo que reluce.
Me explico, después de colocar nuestra referencia al script JQuery, de colocar nuestros menús, nuestros tooltips animados y ejecutamos nuestra página y lanzamos un UpdatePanel, todo aquello que habíamos anhelado durante tanto tiempo y que creíamos que por fin lo habíamos conseguido, se ha desvanecido, ¿dónde está?
La respuesta es fácil, simplemente no está. Todos nuestros efectos y demás, se ha dejado de interpretar.
Pero tranquilos, como todo en esta vida tiene solución. Únicamente deberemos de recargar toda nuestra batería de script JQuery al finalizar la ejecución del UpdatePanel, para ello deberemos de colocar el siguiente Script en nuestra página ASPX:
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoaded);
function pageLoaded(sender, args) {
var updatedPanels = args.get_panelsUpdated();
// Revisamos que UpdatePanel si es nuestro UpdatePanel quien se ha lanzado
for (idx = 0; idx < updatedPanels.length; idx++) {
if (updatedPanels[idx].id == 'MyUpdatePanelID') {
MiBateriaScripts();
break;
}
}
}
Al acabarse el PostBack del UpdatePanel, se ejecutará el script MiBateriaScripts(). Esta función de Java, debería contener todos los eventos o controles que hayamos creado en el inicio de JQuery.