Utilizzo deiFrame in ASP.NET
-
14-11-2019 - |
Domanda
Ho un sito Web ASP.NET con una pagina master, posso utilizzare iframe
in modo che le pagine .aspx
verranno caricate all'interno del iframes
.(Significa che non caricare la pagina master)
kinda come il mio iframe
sarà il contentplaceholder
o forse il contentplaceholder
sarà dentro di esso?
Qualche idea?
Soluzione
Prova questo
<iframe name="myIframe" id="myIframe" width="400px" height="400px" runat =server></iframe>
.
Esporre questo IFrame nella pagina Pagina principale:
public HtmlControl iframe
{
get
{
return this.myIframe;
}
}
.
Aggiungi la direttiva di masterType per la pagina del contenuto a una pagina master a forte digitata.
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits=_Default" Title="Untitled Page" %>
<%@ MasterType VirtualPath="~/MasterPage.master" %>
.
in codice dietro
protected void Page_Load(object sender, EventArgs e)
{
this.Master.iframe.Attributes.Add("src", "some.aspx");
}
. Altri suggerimenti
Che ne dici di:
<asp:HtmlIframe ID="yourIframe" runat="server" />
.
È supportato da .NET Framework 4.5
Se si hanno problemi a utilizzare questo controllo, potresti dare un'occhiata a qui .
Puoi pensare a un Iframe come una finestra del browser incorporato che è possibile inserire una pagina HTML per mostrare un altro URL al suo interno. Questo URL può essere totalmente distinto dal tuo sito web / app.
È possibile inserire un Iframe in qualsiasi pagina HTML, in modo da poter inserire uno all'interno di un Pratenshishholder in una busta web che ha una masterpage e apparirà con qualsiasi URL che lo carica (tramite JavaScript o C # se si gira il tuo Iframe In un controllo lato server (runat='server'
) sulla pagina HTML finale che il tuo WebForm produce quando richiesto.
E puoi caricare un URL nel tuo IFrame che è una pagina .aspx
.
Ma - iframe non hanno nulla a che fare con il meccanismo ASP.NET. Sono elementi HTML che possono essere eseguiti per eseguire il lato server, ma sono essenzialmente "stupidi" e non gestiti / non connessi ai meccanismi ASP.NET - non confondere un luogo di bellezza con un Iframe.
Incidentalmente, l'uso di IFrames è ancora controverso - hai davvero bisogno di usarne uno? Puoi permetterti i compromessi negativi associati a loro ad es. Mancanza di storia della navigazione ...?
Un'altra opzione è utilizzare i segnaposto.
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 />"));