我继承了父母主页面的一些代码:content.master。此页面有两个属性,内容页面可以访问这两个属性来控制多视图服务器控件。
public enum ContentViews
{
vw100 = 0,
vw3070 = 1,
vw7030 = 2
}
public ContentViews CurrentView
{
get { return ((ContentViews)mvwDisplay.ActiveViewIndex); }
set { mvwDisplay.ActiveViewIndex = (int)value; }
}
直接子内容页面(content_3070.aspx)可以访问这些属性并设置多视图的活动视图,如下所示:
protected void Page_PreInit(Object sender, System.EventArgs e)
{
((Content_Master)Page.Master).CurrentView = Content_Master.ContentViews.vw3070;
}
我也有content_100.aspx和content_7030.aspx,它们都是直接的孩子,可以做同样的事情。
那很好。但我想要做的是创建另一个母版页:search.master。 Seach.master将是一个嵌套的主人。
<%@ Master Language="C#" MasterPageFile="~/content.master" AutoEventWireup="true"CodeFile="search.master.cs" Inherits="Search_Master" %>
<%@ MasterType virtualpath="~/content.master" %>
从search.master,我想创建子内容页面(将是content.master的孙子)。从这些'孙子',我想访问content.master属性。但我似乎无法弄清楚如何在C#中执行此操作的语法。
感谢。
答案 0 :(得分:1)
好的,想出这个。解决方案是向子母版页(search.master)添加属性,然后可以引用父母版页(content.master)上的属性。然后,第二个主服务器(search.master)的子内容页面可以访问其直接父主服务器的属性。
所以,第二个孩子的主人,seach.master看起来像这样:
public partial class Search_Master : System.Web.UI.MasterPage
{
public enum ContentViews
{
vw100 = Content_Master.ContentViews.vw100,
vw3070 = Content_Master.ContentViews.vw3070,
vw7030 = Content_Master.ContentViews.vw7030
}
public ContentViews CurrentView
{
get
{
MultiView mvwDisplay;
mvwDisplay = (MultiView)Master.FindControl("mvwDisplay");
return ((ContentViews)mvwDisplay.ActiveViewIndex);
}
set
{
MultiView mvwDisplay;
mvwDisplay = (MultiView)Master.FindControl("mvwDisplay");
mvwDisplay.ActiveViewIndex = (int)value;
}
}
}
可以从search.master的内容子项中设置content.master上的多视图:
protected void Page_PreInit(Object sender, System.EventArgs e)
{
((Search_Master)Page.Master).CurrentView = Search_Master.ContentViews.vw100;
}