Я считаю, что каждый использовал функцию вложенной главной страницы в ASP.NET 2.0. Эта функция очень мощная и позволяет пользователям сначала создавать страницы шаблонов, а затем легко применять их к другим страницам. Более того, страницы шаблонов могут быть вложенными, но мы обнаружим проблему с вложенными страницами шаблонов, то есть при использовании вложенных страниц шаблонов нет возможности выполнять над ними визуальные операции в состоянии представления дизайна, так как же это решить. проблема? Я поискал в блоге иностранца и нашел метод, предоставленный иностранцем. А пока я могу пойти в обход, чтобы решить эту проблему, и объясню это ниже:
Мы можем написать базовый класс с именем basepage.cs и поместить его в каталог app_code. В этот класс добавьте класс с именем basepage.cs.
Атрибут runtimeMasterPageFile — это строковый тип, который указывает, какой файл шаблона использовать во время выполнения, и переопределяет OnPreInit.
Метод, код следующий:
общедоступный класс BasePage: System.Web.UI.Page
{
частная строка runtimeMasterPageFile
общедоступная строка RuntimeMasterPageFile;
{
получать
{
вернуть runtimeMasterPageFile;
}
набор
{
runtimeMasterPageFile = значение;
}
}
защищенное переопределение void OnPreInit(EventArgs e)
{
если (runtimeMasterPageFile! = ноль)
{
this.MasterPageFile = runtimeMasterPageFile;
}
base.OnPreInit(е);
}
}
Далее мы создаем страницу шаблона с именем mainmaster.master, случайным образом добавляем в нее информацию верхнего и нижнего колонтитула, оставляем заполнитель содержимого с именем MainContent посередине, а затем создаем страницу шаблона с именем submaster.master, в которой
MasterPageFile="~/MainMaster.master", чтобы применить страницу шаблона mainmaster, поместите таблицу с одной строкой и двумя столбцами, как показано ниже:
<asp:Content ID="foo" ContentPlaceHolderId="MainContent" runat="server">
<table>
<тр>
<td ширина="300">
Левый столбец в SubMaster
<br />
<asp:ContentPlaceHolder ID="LeftColumn" runat="server">
</asp:ContentPlaceHolder>
</td>
<тд>
Правый столбец в SubMaster
<br />
<asp:ContentPlaceHolder ID="RightColumn" runat="server">
</asp:ContentPlaceHolder>
</td>
</tr>
</таблица>
</asp:Содержимое>
Наконец, на странице aspx укажите это
<%@ Page Language="C#" MasterPageFile="" RuntimeMasterPageFile="SubMaster.master" CodeFileBaseClass="BasePage" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Title="Страница без названия" %>
Как видите, здесь мы не устанавливаем свойства masyterpage, а указываем свойства RuntimeMasterPageFile как
submaster.master, это шаблон, который загружается во время выполнения, а атрибут codefilebaseclass указывает только что написанный нами класс basepage.cs. Таким образом, мы можем видеть изменение состояния представления дизайна этого ASPX и можем перетаскивать его. дизайн.
Следует отметить, что, по словам Microsoft, полная поддержка переключения состояния просмотра полного дизайна при вложенности шаблонов будет реализована только в следующей версии VISUAL STUDIO.
Я предоставил для скачивания пример этой статьи, нажмите здесь, чтобы скачать.