Usuário com melhor resposta
como incluir uma página aspx em outra aspx?

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
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
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)
-
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
-
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 -
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!
-
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
-
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 -
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
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!