Ich glaube, dass jeder die verschachtelte Masterpage-Funktion unter ASP.NET 2.0 verwendet hat. Diese Funktion ist sehr leistungsfähig und ermöglicht es Benutzern, zunächst Vorlagenseiten zu erstellen und diese dann einfach auf andere Seiten anzuwenden. Darüber hinaus können Vorlagenseiten verschachtelt werden, aber wir werden ein Problem mit verschachtelten Vorlagenseiten feststellen, das heißt, wenn verschachtelte Vorlagenseiten verwendet werden, gibt es im Entwurfsansichtsstatus keine Möglichkeit, visuelle Operationen daran durchzuführen. Wie kann dieses Problem gelöst werden? Problem? Ich habe den Blog des Ausländers durchsucht und eine vom Ausländer bereitgestellte Methode gefunden. Ich kann dieses Problem vorerst lösen.
Wir können eine Basisklasse namens basepage.cs schreiben und im Verzeichnis app_code ablegen. Fügen Sie dieser Klasse eine Klasse namens basepage.cs hinzu.
Das Attribut von runtimeMasterPageFile ist ein Zeichenfolgentyp, der angibt, welche Vorlagendatei während der Laufzeit verwendet werden soll, und OnPreInit überschreibt.
Methode, der Code lautet wie folgt:
öffentliche Klasse BasePage: System.Web.UI.Page
{
private Zeichenfolge runtimeMasterPageFile;
öffentliche Zeichenfolge RuntimeMasterPageFile
{
erhalten
{
return runtimeMasterPageFile;
}
Satz
{
runtimeMasterPageFile = value;
}
}
protected override void OnPreInit(EventArgs e)
{
if (runtimeMasterPageFile != null)
{
this.MasterPageFile = runtimeMasterPageFile;
}
base.OnPreInit(e);
}
}
Als nächstes erstellen wir eine Vorlagenseite mit dem Namen „mainmaster.master“, fügen nach dem Zufallsprinzip Kopf- und Fußzeileninformationen hinzu, lassen einen Inhaltsplatzhalter mit dem Namen „MainContent“ in der Mitte und erstellen dann eine Vorlagenseite mit dem Namen „submaster.master“.
MasterPageFile="~/MainMaster.master", um die Mainmaster-Vorlagenseite anzuwenden, fügen Sie eine Tabelle mit einer Zeile und zwei Spalten wie folgt ein:
<asp:Content ID="foo" ContentPlaceHolderId="MainContent" runat="server">
<table>
<tr>
<td width="300">
Linke Spalte im SubMaster
<br />
<asp:ContentPlaceHolder ID="LeftColumn" runat="server">
</asp:ContentPlaceHolder>
</td>
<td>
Rechte Spalte im SubMaster
<br />
<asp:ContentPlaceHolder ID="RightColumn" runat="server">
</asp:ContentPlaceHolder>
</td>
</tr>
</table>
</asp:Content>
Geben Sie dies abschließend auf einer ASPX-Seite an
<%@ Page Language="C#" MasterPageFile="" RuntimeMasterPageFile="SubMaster.master" CodeFileBaseClass="BasePage" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Title="Untitled Page" %>
Wie Sie sehen, legen wir hier nicht die Eigenschaften von masyterpage fest, sondern geben die Eigenschaften von RuntimeMasterPageFile als an
submaster.master, dies ist eine Vorlage, die zur Laufzeit geladen wird, und das Attribut codefilebaseclass gibt die Klasse basepage.cs an, die wir gerade geschrieben haben. Auf diese Weise können wir den Pull-Zustand in der Entwurfsansicht dieses ASPX sehen und per Drag & Drop verschieben das Design.
Anzumerken ist, dass es laut Microsoft angeblich erst in der nächsten Version von VISUAL STUDIO eine vollständige Unterstützung für das Umschalten des vollständigen Design-Ansichtsstatus bei der Verschachtelung von Vorlagen geben wird.
Ich habe einen Download eines Beispiels dieses Artikels bereitgestellt. Klicken Sie hier, um ihn herunterzuladen.