none
Problema com fancybox - ela apenas pisca quando mando simular um clik no beforeLoad RRS feed

  • 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
    quinta-feira, 12 de julho de 2012 13:30

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
    quinta-feira, 12 de julho de 2012 15:09
  • 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
    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
    quinta-feira, 12 de julho de 2012 15:09
  • 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
    quinta-feira, 12 de julho de 2012 15:53