J'ai un site asp.net avec une page maître, puis-je utiliser le iframe
donc mon .aspx
les pages se chargeront à l'intérieur de iframes
. (Ce qui signifie qu'il ne chargera pas la page maître)
Un peu comme mon iframe
sera le contentplaceholder
ou peut-être que le contentplaceholder
sera dedans?
Des idées?
essaye ça
<iframe name="myIframe" id="myIframe" width="400px" height="400px" runat =server></iframe>
Exposez cet iframe dans le code de la page maître:
public HtmlControl iframe
{
get
{
return this.myIframe;
}
}
Ajoutez la directive MasterType pour la page de contenu à la page maître fortement typée.
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits=_Default" Title="Untitled Page" %>
<%@ MasterType VirtualPath="~/MasterPage.master" %>
Dans le code derrière
protected void Page_Load(object sender, EventArgs e)
{
this.Master.iframe.Attributes.Add("src", "some.aspx");
}
Que diriez-vous:
<asp:HtmlIframe ID="yourIframe" runat="server" />
est pris en charge depuis .Net Framework 4.5
Si vous rencontrez des problèmes lors de l'utilisation de ce contrôle, vous pouvez jeter un œil ici .
Vous pouvez considérer un iframe comme une fenêtre de navigateur intégrée que vous pouvez placer sur une page HTML pour afficher une autre URL à l'intérieur. Cette URL peut être totalement distincte de votre site Web/application.
Vous pouvez mettre un iframe dans n'importe quelle page HTML, vous pouvez donc en mettre un dans un espace réservé de contenu dans un formulaire Web qui a une page maître et il apparaîtra avec l'URL que vous chargez dedans (via Javascript ou C # si vous transformez votre iframe en serveur -contrôle latéral (runat='server'
) sur la page HTML finale que votre formulaire Web produit à la demande.
Et vous pouvez charger une URL dans votre iframe qui est a .aspx
page.
Mais - les iframes n'ont rien à voir avec le mécanisme ASP.net. Ce sont des éléments HTML qui peuvent être exécutés côté serveur, mais ils sont essentiellement "stupides" et non gérés/non connectés aux mécanismes ASP.Net - ne confondez pas un Contentplaceholder avec un iframe.
Soit dit en passant, l'utilisation des iframes est toujours litigieuse - en avez-vous vraiment besoin? Pouvez-vous vous permettre les compromis négatifs qui leur sont associés, par exemple manque d'historique de navigation ...?
Une autre option consiste à utiliser des espaces réservés.
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 />"));