从嵌套母版页获取对用户控件的访问权



是否有办法从嵌套的母版页访问用户控件上的公共属性?

让我进一步解释

我有三个深母版页

  1. global.master
  2. LargeTopNav。master(继承global.master)
  3. LargeTopNav25-50-25。master(继承LargeTopNav.master)
  4. 功能。aspx -这个页面是我想访问我对LargeTopNav自定义用户控件的地方。master可以设置一个属性。

我对。net相当陌生,所以任何帮助都很感激。

您可以在特性上设置MasterType属性。Aspx 页面,例如:

<%@ MasterType VirtualPath="~/masters/LargeTopNav.master" %>
然后,依次通过在LargeTopNav中创建的属性提供对控件属性的访问。母版母版页类:
public partial class LargeTopNavMaster : MasterPage
{
    // ...
    public string ThePropertyOfTheContainedControl
    {
        get { return MyContainedControl.TheProperty; }
        set { MyContainedControl.TheProperty = value; }
    }
    // ...
}

最后,在特性中。Aspx 页,访问母版页的属性,该属性提供对底层控件的访问:

public partial class Feature : Page
{
    // ...
    protected void Page_Load( object sender, EventArgs e )
    {
        Master.ThePropertyOfTheContainedControl = "Some nice text.";
    }
    // ...
 }

通常我在这种情况下所做的是使您的主页实现一个接口(它将具有您的用户控制的属性),然后从您的主页feature.aspx使用this.Master(或this.Master.Master,确保检查null)获得对主页的引用。

然后,只需将母版页类型转换为接口,并访问该属性。