Vanicore 0 Denunciar post Postado Outubro 25, 2010 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 91 Denunciar post Postado Outubro 27, 2010 Você tem UpdatePanel no seu formulário? Caso sim, teste em um sem UpdatePanel. E poste o que acontece aqui. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Vanicore 0 Denunciar post Postado Outubro 28, 2010 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
Vanicore 0 Denunciar post Postado Outubro 29, 2010 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