Usuário com melhor resposta
Problema com fancybox - ela apenas pisca quando mando simular um clik no beforeLoad

Pergunta
-
Tenho uma página, que possui uma div que só deve ser mostrada quando o usuário clicar na busca.
Essa div vai mostrar uma lista de nomes, e após o usuário selecionar um nome, ela deve ser fechada.
O meu problema está acontecendo quando eu chamo a função que vai carregar esse campo.
Eu uso o beforeLoad para que ele chame a função que vai carregar essa lista. A única forma que eu consegui de chamar a função, foi "simular" que o cliente clicou em outro botão, que fica escondido na tela, pois a busca vai ser feita de acordo com o que o usuário informar.
Ele deve clicar no botão de busca, que chama a fance e ao mesmo tempo carrega os dados que devem aparecer nessa fance.
Como eu não consigo no mesmo botão que ativa a fance, fazer com que ele entre na função, tive que usar esse recurso.
Mas o meu problema, é que da forma que eu estou fazendo, a fancebox "pisca" na tela e depois some.
Quando eu substituo o que está escrito no beforeLoad por alert('oi'); , isso não acontece, aparece a tela de mensagem e depois a fance fica ali, aberta, mas quando eu chamo a função, ela abre e depois fecha, da aquela "piscada".
Eu vi que se eu usa-se o
Segue os códigos abaixo:
O chamado para a fance
<script type="text/javascript"> $("#hidden_link222").fancybox( { beforeLoad: function() { $("#btnBuscarCliente").click();} } ); </script>
O div que deve aparecer quando chamar a fance
<div id="Div1" style="display: none;"> <div id="inlineConteudoID" style="width:400px;"> <asp:ListBox ID="lstCliente" runat="server" Height="23px" onselectedindexchanged="lstCliente_SelectedIndexChanged" Width="500px"></asp:ListBox> <br /> <asp:Label ID="lblMensagemClienteNaoAchou" runat="server" Text=""></asp:Label> </div> </div>
O link que o usuário usa para fazer a busca
como ainda está em teste, depois ele irar ser substituído por um linkButton (que nos testes da o mesmo resultado e problema que eu informei aqui)
<a href="#inlineConteudoID" id="hidden_link222"> oi </a>
Grata pela ajuda
:(
- Editado Bequi quinta-feira, 12 de julho de 2012 13:31
Respostas
-
Consegui fazer com que para-se de piscar, mas o campo não carrega.
Sendo que a função eu já testei, clicando direto no botão que chama a função, na tela ele aparece normal, mas quando eu uso a função abaixo, debugando eu vi que ele entra na função, mas não atualiza a tela.
A sim, o problema ocorreu pq não estava dentro do update panel.
Tudo está dentro do mesmo update panel, tenho até um botão que chama a função que chama essa função script, mas da o mesmo resultado, ele passa pela função e não atualiza a tela.
Alguem sabe como pode me ajudar?
function() { $("#btnBuscarCliente").click();
:(
- Marcado como Resposta Bequi quinta-feira, 12 de julho de 2012 15:53
-
Já resolvi todo o problema.
Em vez de chamar a fance e depois carregar, usando a função o que eu fiz, foi usar o botão da busca se clicado primeiro e no final, simular que o usuário clicou no link que abre a div pelo fancebox pela função abaixo.
ScriptManager.RegisterClientScriptBlock(upClientes, GetType(), "teste", "$(\"#lbtnBuscar\").click();", true);
E ao mesmo tempo tirei o código abaixo da chamada da Fance
beforeLoad: function() { $("#btnBuscarCliente").click();}
:(
- Marcado como Resposta Bequi quinta-feira, 12 de julho de 2012 15:53
Todas as Respostas
-
Consegui fazer com que para-se de piscar, mas o campo não carrega.
Sendo que a função eu já testei, clicando direto no botão que chama a função, na tela ele aparece normal, mas quando eu uso a função abaixo, debugando eu vi que ele entra na função, mas não atualiza a tela.
A sim, o problema ocorreu pq não estava dentro do update panel.
Tudo está dentro do mesmo update panel, tenho até um botão que chama a função que chama essa função script, mas da o mesmo resultado, ele passa pela função e não atualiza a tela.
Alguem sabe como pode me ajudar?
function() { $("#btnBuscarCliente").click();
:(
- Marcado como Resposta Bequi quinta-feira, 12 de julho de 2012 15:53
-
Já resolvi todo o problema.
Em vez de chamar a fance e depois carregar, usando a função o que eu fiz, foi usar o botão da busca se clicado primeiro e no final, simular que o usuário clicou no link que abre a div pelo fancebox pela função abaixo.
ScriptManager.RegisterClientScriptBlock(upClientes, GetType(), "teste", "$(\"#lbtnBuscar\").click();", true);
E ao mesmo tempo tirei o código abaixo da chamada da Fance
beforeLoad: function() { $("#btnBuscarCliente").click();}
:(
- Marcado como Resposta Bequi quinta-feira, 12 de julho de 2012 15:53