none
abrir form.aspx em janela dialog (jquery) RRS feed

  • Pergunta

  • uso VS2010, aspnet 4, c#

    Esse código abaixo abre a janela dialogo (imagem a seguir)

    <asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
        <script language="javascript" type="text/javascript">        
            $(function () {
                $("#dialog").dialog({
                    autoOpen: false,               
                });
                $("#chamar_dialogo").click(function () {
                    $("#dialog").dialog("open");
                    return false;
                });
            });          
        </script>
    </asp:Content>
    <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
        <div id="dialog" title="Basic dialog">
            <p>teste</p>
        </div>
        <div>
            <button id="chamar_dialogo">
                Open Dialog</button>
            <br />
        </div>
    </asp:Content>

    Tem como dentro desse modal em vez de um texto, abrir uma página aspx. por exemplo: a página com o nome "Novo.aspx" 

     
    terça-feira, 26 de junho de 2012 12:37

Respostas

  • Isso é um problema pois o update panel remove os elementos do DOM para carregar algo.. isso pode estar acontecendo com você.

    Tenta fazer isso:

    $('[id$=BtnNovaSerie]').live("click",function () {
                    $("#dialogo").load("../Serie/NovaSerie.aspx").dialog({ modal: true });
                    return false;
                });


    http://www.linkedin.com/pub/murilo-kunze/44/191/455


    • Editado Murilo Kunze terça-feira, 26 de junho de 2012 23:13
    • Marcado como Resposta Álvaro Luiz quinta-feira, 28 de junho de 2012 19:00
    terça-feira, 26 de junho de 2012 23:13

Todas as Respostas

  • Amigo,

    Você está usando uma caixa de dialogo simples, só ler a documentação do plugin antes de usar que você vai saber se da ou não. Para fazer isso que você quer você tem duas opções:

    1 - A mais fácil é que se a caixa aceita HTML lógico que ela vai aceitar um IFRAME, bom e velho, que pode carregar seu conteúdo sem problema.
    2 - Encontrar outro plugin que faça isso para você, exemplo: Fancybox, Colorbox ou Nyromodal.

    Em todos você vai precisar saber o minimo de html+css, então vais e preparando que não vai ser mamão com açucar!

    Boa sorte!


    Não esqueça de marcar como útil uma resposta que te ajude.
    "A diversão é a alma do negócio"

    • Sugerido como Resposta Murilo Kunze terça-feira, 26 de junho de 2012 16:21
    terça-feira, 26 de junho de 2012 16:02
  • Olá Lucas, assim funciona, mas o problema é que sempre que carrego a pagina ele já abre a dialog


    <asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
       
    <script language="javascript" type="text/javascript">
            $
    (function () {
                $
    ("#dialog").load("janela.aspx").dialog({ modal: true });
                $
    ("#chamar_dialogo").click(function () {
                    $
    ("#dialog").dialog("open");
                   
    return false;
               
    });
           
    });          
       
    </script>
    </asp:Content>
    <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
       
    <div id="dialog" title="Basic dialog">      
       
    </div>
       
    <div>
           
    <button id="chamar_dialogo">
                Open Dialog
    </button>
           
    <br />
       
    </div>
    </asp:Content>


    • Editado Álvaro Luiz terça-feira, 26 de junho de 2012 18:32
    terça-feira, 26 de junho de 2012 18:25
  • Você está chamando o .dialog fora do contexto do click do botão..

    Faz ele somente dentro:

    $(function () {
                $("#chamar_dialogo").click(function () {
                    $("#dialog").load("janela.aspx").dialog({ modal: true });
                    return false;
                }); 
            }); 


    http://www.linkedin.com/pub/murilo-kunze/44/191/455

    terça-feira, 26 de junho de 2012 18:41
  • Olá Murilo

    funciona apenas na primeira vez, isto é quando abro a página e chamo no click do botão,

    <script type="text/javascript">
            $(document).ready(function () {
                $('[id$=BtnNovaSerie]').click(function () {
                    $("#dialogo").load("../Serie/NovaSerie.aspx").dialog({ modal: true });
                    return false;
                });
            });
        </script>

     se fechar e tentar novamente dá o seguinte erro: na linha abaixo

    " Erro em tempo de execução do Microsoft JScript: O objeto não oferece suporte à propriedade ou método 'dialog' "

     $("#dialogo").load("../Serie/NovaSerie.aspx").dialog({ modal: true });



    • Editado Álvaro Luiz terça-feira, 26 de junho de 2012 19:34
    terça-feira, 26 de junho de 2012 19:32
  • Você está usando update panel?

    http://www.linkedin.com/pub/murilo-kunze/44/191/455

    terça-feira, 26 de junho de 2012 19:53
  • sim estou usando update panel
    terça-feira, 26 de junho de 2012 21:08
  • Isso é um problema pois o update panel remove os elementos do DOM para carregar algo.. isso pode estar acontecendo com você.

    Tenta fazer isso:

    $('[id$=BtnNovaSerie]').live("click",function () {
                    $("#dialogo").load("../Serie/NovaSerie.aspx").dialog({ modal: true });
                    return false;
                });


    http://www.linkedin.com/pub/murilo-kunze/44/191/455


    • Editado Murilo Kunze terça-feira, 26 de junho de 2012 23:13
    • Marcado como Resposta Álvaro Luiz quinta-feira, 28 de junho de 2012 19:00
    terça-feira, 26 de junho de 2012 23:13