none
como incluir uma página aspx em outra aspx? RRS feed

  • Pergunta

  •  

    Bom dia,

     

    gostaria de saber como faria para incluir uma página aspx em outra ou então em uma table de uma página html mesmo ex:

     

    ex: topo.aspx, meio.aspx, rodape.aspx dividindo cada uma em iframe daria porém até agora não consegui fazer funcionar a altura automática como 100%...

     

    qual é a melhor solução? em php, podemos utilizar o include em qualquer lugar do html q já da certo, como seria o mesmo processo mas com c#.net ?

     

    Grato,

     

    Ibanes

    quinta-feira, 18 de dezembro de 2008 10:07

Respostas

  •  Ibanes wrote:

    já na página aspx que vou chamar este user control fiz o que vc sugeriu, simplesmente arrastei o user control.aspx para o html dentro de uma nova table...

    mas aparece somente o link do user control e não da certo, oq fiz de errado??

     

    Olá,

     

    É realmente super simples. A única coisa que você fez errado é que você precisa arrastar o controle quando estiver no modo de design, como eu escrevi acima.

     

    Como você sabe, quando você está editando sua página ASPX, você tem dois modos: Source, onde você visualiza o código HTML, e o modo Design, onde você visualiza, mais ou menos, como a página ficaria no navegador.

     

    Mude para o modo Design, e só então arraste o UserControl para a página.

    Veja a imagem abaixo para referência:

    http://i40.tinypic.com/29ve5j6.jpg

     

    ---

     

    Tudo isso é para facilitar as coisas, claro... Nada impede de você acrescentar o UserControl manualmente na sua página.

     

    Abaixo da tag Page, você adiciona a referência para o seu UserControl:

     

    Code Snippet

     

    <%@ Register Src="Arquivo.ascx" TagName="NomeControl" TagPrefix="prefixo" %>

     

     

    Depois, onde quiser inserir o UserControl, basta declarar as tags desse controle:

     

    Code Snippet

     

    <div>

       <prefixo:NomeControl id="NomeControl_1" runat="server">

       </prefixo:NomeControl>

    </div>

     

     

    Abraços,
    Caio Proiete




    Caio Proiete
    http://www.caioproiete.com
    quinta-feira, 18 de dezembro de 2008 14:41

Todas as Respostas

  • Até existe o include em aspx porém ele dá alguns conflitos pois ao inserir um código aspx dentro de outro, ele fica com duas propriedades inherit por exemplo, e assim gera um erro...

    A solução que eu diria ser mais "profissional" seria utilizando Master Page

     

    (Y)

     

    quinta-feira, 18 de dezembro de 2008 11:03
  • Bom dia André, obrigado pela resposta porém, já utilizamos masterPage na intranet então o que eu precisaria fazer seria somente fazer a mesma coisa que o include do php faz, ou seja.. para que uma tela grande não fique tão complicado de dar manutenção depois e fique mais fácil de achar os códigos...

     

    att,

     

    Ibanes

     

    quinta-feira, 18 de dezembro de 2008 12:02
  •  Ibanes wrote:
    Já utilizamos masterPage na intranet então o que eu precisaria fazer seria somente fazer a mesma coisa que o include do php faz, ou seja.. para que uma tela grande não fique tão complicado de dar manutenção depois e fique mais fácil de achar os códigos...

     

    Olá Junior,

     

    Tudo que você precisa fazer é criar UserControls. Dentro de cada UserControl você inclui o código que você pretende inserir nas outras páginas (como se fosse o include do PHP), e depois apenas "arrasta" o UserControl para dentro de cada página.

     

    Para criar um UserControl, clique com o botão direito no seu projeto, lá no Solution Explorer, vá em "Add New Item...", e selecione "Web User Control". O Visual Studio irá criar um arquivo com a extensão ASCX.

     

    Agora, dentro desse UserControl você coloca o código ASP .NET / HTML que você desejar, como se você estivesse fazendo uma página ASPX.

     

    Por fim, em cada página que você quiser adicionar esse UserControl, você apenas arrasta o UserControl para essa página (do Solution Explorer para a página no modo design)

     

    Abraços,

    Caio Proiete




    Caio Proiete
    http://www.caioproiete.com
    quinta-feira, 18 de dezembro de 2008 12:38
  • Bom dia Caio, mais uma vez obrigado por responder...

     

    Estive lendo sobre UserControl, porém onde peguei para estudar achei muito complicado e achei também que deveria existir outro método, porém do jeito que você explicou parece mesmo muito fácil, mas acabei de testar e não deu certo, veja o que eu fiz:

     

    Criei um User control e digitei um código qlq ex:

     

    <table>

    <tr>

    <td>

    TESTANDO WEBCONTROL <br />

    teste

    </td>

    </tr>

    </table>

     

    e salvei...

    já na página aspx que vou chamar este user control fiz o que vc sugeriu, simplesmente arrastei o user control.aspx para o html dentro de uma nova table...

    mas aparece somente o link do user control e não da certo, oq fiz de errado??

     

    Grato!

    quinta-feira, 18 de dezembro de 2008 13:29
  • Se ao usar o USerControl e a MAsterPage o seu problema não foi solucionado, tente esta solução em HTML.

     

    <frameset rows="105,*,20" cols="*" frameborder="no" border="0" framespacing="0" >

    <frame src="top.aspx" name="topFrame" noresize="noresize" scrolling="no" id="topFrame" title="topFrame"/>

    <frameset rows="*" cols="253,*" framespacing="0" frameborder="no" border="0" >

    <frame src="left.aspx" name="leftFrame" scrolling="auto" noresize="noresize" id="leftFrame" title="leftFrame" />

    <frame src="index.aspx" name="mainFrame" id="mainFrame" title="mainFrame" scrolling="auto"/>

    </frameset>

    <frame src="rodape.aspx" name="mainFrame" scrolling="no" noresize="noresize" id="rodapeFrame" title="rodapeFrame"/>

    </frameset>

     

           Agora, é só mudar os endereços e você terá as páginas conforme organizado no código acima. Para alterar o endereço das páginas durante o desenvolvimento, é só criar um link que tenha, na propriedade target, o nome do seu frame.

     

    Espero ter ajudado.

     

    Renan Dutra de Faria 

    quinta-feira, 18 de dezembro de 2008 13:34
  •  Ibanes wrote:

    já na página aspx que vou chamar este user control fiz o que vc sugeriu, simplesmente arrastei o user control.aspx para o html dentro de uma nova table...

    mas aparece somente o link do user control e não da certo, oq fiz de errado??

     

    Olá,

     

    É realmente super simples. A única coisa que você fez errado é que você precisa arrastar o controle quando estiver no modo de design, como eu escrevi acima.

     

    Como você sabe, quando você está editando sua página ASPX, você tem dois modos: Source, onde você visualiza o código HTML, e o modo Design, onde você visualiza, mais ou menos, como a página ficaria no navegador.

     

    Mude para o modo Design, e só então arraste o UserControl para a página.

    Veja a imagem abaixo para referência:

    http://i40.tinypic.com/29ve5j6.jpg

     

    ---

     

    Tudo isso é para facilitar as coisas, claro... Nada impede de você acrescentar o UserControl manualmente na sua página.

     

    Abaixo da tag Page, você adiciona a referência para o seu UserControl:

     

    Code Snippet

     

    <%@ Register Src="Arquivo.ascx" TagName="NomeControl" TagPrefix="prefixo" %>

     

     

    Depois, onde quiser inserir o UserControl, basta declarar as tags desse controle:

     

    Code Snippet

     

    <div>

       <prefixo:NomeControl id="NomeControl_1" runat="server">

       </prefixo:NomeControl>

    </div>

     

     

    Abraços,
    Caio Proiete




    Caio Proiete
    http://www.caioproiete.com
    quinta-feira, 18 de dezembro de 2008 14:41
  • Caio, como sempre ajudando mto por aqui... brigadão novamente meu velho e Renan, obrigado tb pela dica com utilizando frames...

    deu certo dos dois jeito, porém gostei bastante do control Smile

     

    ps: caio, qdo design não deu certo, tive q fazer via source mesmo, não sei pq meu vs2008 é original e é cheio de bugs, inclusive bagunça os códigos toda hora hehehe mas é isso aí valeu!

     

    abraço!

    quinta-feira, 18 de dezembro de 2008 17:19