Posts recientes

El contenido de este blog tiene una licencia Creative Commons.
Creative Commons

Problemas JQuery y ASP.NET Ajax (UpdatePanel)   

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.

 
Publicado  en  16/12/2009  por  Javier Tirado Pampín
4  Comentarios  |  Trackback Url  | 2  Enlaces a este post | Bookmark este post con:          
Etiquetas: ASP.NET, JQuery
Technorati Tags: ,
 

Vinculos a este post

Trackback desde  ozone colleagues cfcs  en   11/08/2010
ozone colleagues cfcs
[...] climatic project governments [...]

Comentarios

jueves, 02 de septiembre de 2010  0:07  por Claudio
Estimado, podrias explicar la funcion MiBateriaScripts(), es decir como cargamos los script jquery en esa funcion.
Gracias.

lunes, 13 de septiembre de 2010  15:57  por Javier Tirado
Estimado amigo.
MiBateriaScripts() sería la serie de JScripts donde estarán todos los eventos o controles que queremos que se actualicen cuando finalice la ejecución del UpdatePanel.
Espero que te sirva de ayuda

jueves, 10 de febrero de 2011  22:36  por Germán David Ruiz Figueroa
Hola, podrias complementar la idea con un ejemplo de la función MiBateriaScripts()

Saludos

martes, 29 de marzo de 2011  0:12  por cmarin1983
Saludos
Lo que va en el método "MiBateriaScripts" sería la inicialización de los métodos de sus objetos jquery, por ejemplo:
function MiBateriaScripts() {
var x;
x = $(document);
x.ready(iniEvents);
}
function iniEvents() {
var x;
x = $("#txtCedu");
x.blur(pierdeFoco);
}
function pierdeFoco() {
alert("Perdí el foco");
}