web-dev-qa-db-fra.com

Utilisation d'iFrames dans ASP.NET

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?

20
Or Betzalel

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");
}
29
santosh singh

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 .

9
Philipp Hofmann

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 ...?

8
indra

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 />"));
7
owen gerig