Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Vanicore

[Resolvido] Funcionalidade JQuery é perdida com postback

Recommended Posts

Pessoal, estou fazendo um controle daqueles "expande/encolhe" via jQuery na minha aplicação.À princípio funciona direitinho, mas quando executo a chamada de um método em que abre uma Janela Modal (através do toolkit Ajax), o método jQuery perde sua função.

Alguém já se deparou com isso, existe solução?

 

Detalhe:

 

Eu estou implantando o efeito que segue no link abaixo:

 

http://www.maujor.com/blog/pg_apoio/jquery-toggle-texto-exemplo.html

 

Porém já existe uma outra função na minha aplicação.Onde esta, utiliza o controle Ajax Modal do Toolkit (ou seja ModalPopupExtender), para abrir através do clique

 

de um botão específico, uma janela central que engloba meu UserControl(ascx).

 

Como todos sabem a janela Modal fica sobreposta à frente das informações que por hora ficam desabilitadas (Página que a desencadeou) até que esta não seja fechada.

 

Quando fecho portanto a janela Modal, nas informações agora habilitadas (Página que desencadeou a Janela Modal), em específico a função jQuery citada primeiramente, não apresenta mais o efeito que possuia antes da abertura do Modal.

 

Fui claro, ou devo postar o código?

Compartilhar este post


Link para o post
Compartilhar em outros sites

quintelab,

 

Como meu Modal é aberto à partir da MasterPage e nela eu possuo um UpdatePanel englobando tudo, tentei tira-lo e veja o que aconteceu...minhas funções jQuery ressuscitaram ao fechar o Modal!!!

 

Infelizmente isso não garantiu um ótimo funcionamento do meu Modal pois, neste aberto eu tenho uma pesquisa como utilidade, lado esquerdo há os filtros e do direito o resultado.

 

Assim, toda vez que faço determinada consulta, o Modal some e aparece com o resultado, diferente de quando eu tinha o UpdatePanel onde o Modal ficava fixo até o resultado ser mostrado.

 

Obviamente porque agora sem o UpdatePanel ocorre PostBack...

 

Se alguém tiver uma solução para esse novo cenário, agradeço.

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal consegui!!!

 

Vamos a solução.

 

1 - A minha Master Page faz uso do UpdatePanel.

 

2 - Na minha funcão jQuery, faço a atribuição de evento a um objeto que está dentro da região deste UpdatePanel (o button):

 

function cxEncolheExpande()

{

// Aqui o efeito Encolhe

jQuery('button:eq(0)').click(function(){

jQuery('#fieldset-desempenho-resumo-usuario').slideUp("slow")

});

// Aqui o efeito Expande

jQuery('button:eq(1)').click(function(){

jQuery('#fieldset-desempenho-resumo-usuario').slideDown("slow")

});

}

 

 

3 - Como sabem, a atribuição do evento ocorre assim que a página for carregada.Daí quando ocorre um postback assíncrono, o trecho da página onde se encontra o botão será atualizado e essa atualização faz com que o evento se desvincule do botão.

 

4 - Para resolver eu primeiramente alterei o meu código jQuery.Quando uma requisição Ajax for encerrada, o evento click do botão será novamente atribuido :

 

<!-- Declaração jQuery -->

<script language="javascript" type="text/javascript" src="../../Templates/Scripts/jquery-1.4.3.min.js"></script>

 

<script type="text/javascript">

jQuery(document).ready(function(){

cxEncolheExpande()

})

 

5 - O segredo final foi utilizar uma das Classes Sys.WebForms (Ajax Library) que trabalham com os eventos do Update Panel.No caso Sys.WebForms.PageRequestManager.getInstance().add_endRequest();

 

// Aqui eu registrei a Classe, passando como parâmetro endRequest que será o nome que trabalharei com esta à partir de agora

 

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequest);

 

//Eis a função

 

function endRequest(sender, args) {

// Comportamento jQuery para efeito de Encolhe/Expande Caixas Dobráveis

cxEncolheExpande();

}

 

Detalhe: A classe Sys.WebForms.PageRequestManager.getInstance().add_beginRequest() é sempre gerada após a conclusão do postback assíncrono e o controle retorna ao browser.

 

Alguns sites que utilizei como fonte de auxílio para minhas conclusões e resolução do meu problema:

 

http://msdn.microsoft.com/pt-br/library/bb311028%28VS.90%29.aspx

 

http://www.bufaloinfo.com.br/dicas.aspx?cod=1055

 

Acessem meu Blog www.trunfodigital.com.br

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.