Usando iFrames ASP.NET
-
14-11-2019 - |
Pergunta
Eu tenho um asp.net website com um mestre-de-página, pode usar o iframe
então, a minha .aspx
páginas de carga dentro da iframes
.(O que significa que não carrega o mestre-de-página)
Meio que como a minha iframe
vai ser o contentplaceholder
ou talvez o contentplaceholder
será lá dentro?
Qualquer Idéias?
Solução
tente isso
<iframe name="myIframe" id="myIframe" width="400px" height="400px" runat =server></iframe>
Exponha este iframe na página principal do code-behind:
public HtmlControl iframe
{
get
{
return this.myIframe;
}
}
Adicionar a MasterType directiva para a página de conteúdo para rigidez de Página-Mestre.
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits=_Default" Title="Untitled Page" %>
<%@ MasterType VirtualPath="~/MasterPage.master" %>
No code-behind
protected void Page_Load(object sender, EventArgs e)
{
this.Master.iframe.Attributes.Add("src", "some.aspx");
}
Outras dicas
Como sobre:
<asp:HtmlIframe ID="yourIframe" runat="server" />
É apoiado desde então .Net Framework 4.5
Se você tiver Problemas ao usar este controle, você pode dar uma olhada aqui.
Você pode pensar em um iframe, como uma janela de navegador incorporada que você pode colocar em uma página HTML para mostrar uma outra URL no seu interior.Essa URL pode ser totalmente distinta de seu web site/aplicativo.
Você pode colocar um iframe em uma página HTML, então você pode colocar um dentro de um contentplaceholder em um formulário da web que tem uma Masterpage e ela vai aparecer com qualquer URL que você carregar em (via Javascript), ou C# se você ligar o iframe em um lado do servidor (controle derunat='server'
) na última página HTML que seu webform produz quando solicitado.
E você pode carregar um URL em seu iframe é um .aspx
página.
Mas - iframes não tem nada a ver com o ASP.net mecanismo.Eles são elementos HTML que pode ser feito para rodar no lado do servidor, mas eles são essencialmente de 'burro' e não gerenciado/desligado para o ASP.Net mecanismos - não confundir um Contentplaceholder com um iframe.
Aliás, o uso de iframes ainda é controversa - você realmente precisa usar um?Você pode pagar o negativo trade-offs associados a eles e.g.a falta de histórico de navegação ...?
Outra opção é o uso de marcadores de posição.
Html:
<body>
<div id="root">
<asp:PlaceHolder ID="iframeDiv" runat="server"/>
</div>
</body>
C#:
iframeDiv.Controls.Add(new LiteralControl("<iframe src=\"" + whatever.com + "\"></iframe><br />"));