Arquivo da tag: ASP.NET AJAX

UpdatePanel e JQuery

Para quem usa ASP.NET é comum o uso do UpdatePanel para realizar atualizações parciais. Atualmente também é comum o uso JQuery.

O problema é quando os dois recursos devem conviver juntos. O problema que ocorre é que após a atualização parcial da página pelo UpdatePanel a implementação JQuery deixa de funcionar, provavelmente devido a estrutura da página ter mudado após a atualização.

Uma forma que encontrei, é executar as funções Javascript que usam JQuery novamente após a renderização pelo UpdatePanel.

No ASP.NET Ajax é possível gerenciar a renderização parcial da página através da classe PageRequestManager. A classe define eventos que podem ser usados na personalização da renderização parcial. O seu metódo getInstance() recupera sua instância atual/ativa e seu método add_endRequest permite adicionar uma chamada a uma função Javascript exatamente após o fim da renderização parcial, é neste momento que devemos chamar a função Javascript que mantem código JQuery.

Exemplo:

$(document).ready(function () {

	//Inicializando na após a carga da página
	inicializa();

	//função com o código JQuery
	function inicializa()
	{
		$("buttonX").click(function () {
			fazAlgumaCoisa();
		});
	}

	function fazAlgumaCoisa()
	{
		alert('Feito');
	}

	//Recuperando a instância ativa da classe PageRequestManager.
       var prm = Sys.WebForms.PageRequestManager.getInstance();
       if (prm != null) {
   	   //Registrando uma chamada a função inicializa() após o fim da renderização parcial da página.
           prm.add_endRequest(function () {
               inicializa();
           });
       }
})

Mais informações sobre a classe PageRequestManager em http://msdn.microsoft.com/pt-br/library/bb311028(v=VS.90).aspx

Até mais.