【问题标题】:Find parent MasterPage properties in nested master page在嵌套母版页中查找父 MasterPage 属性
【发布时间】:2012-06-20 11:56:50
【问题描述】:

我继承了一些带有父母版页的代码: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。

<%@ 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# 中执行此操作的语法。

谢谢。

【问题讨论】:

    标签: c# asp.net master-pages


    【解决方案1】:

    好的,解决了这个问题。解决方案是将属性添加到子母版页 (search.master),然后可以引用父母版页 (content.master) 上的属性。然后,第二个母版 (search.master) 的子内容页面可以访问其直接父母版的属性。

    所以,第二个子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; 
            }
        }
    }
    

    content.master 上的多视图可以这样从 search.master 的内容子项中设置:

    protected void Page_PreInit(Object sender, System.EventArgs e)
    {
        ((Search_Master)Page.Master).CurrentView = Search_Master.ContentViews.vw100;
    }
    

    【讨论】:

      猜你喜欢
      • 2010-10-18
      • 1970-01-01
      • 1970-01-01
      • 2010-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-07
      相关资源
      最近更新 更多