从嵌套母版页访问用户控件

时间:2011-11-10 18:41:10

标签: c# asp.net

有没有办法从嵌套母版页访问用户控件上的puplic属性?

让我进一步解释

我有3个深层母版

  1. global.master
  2. LargeTopNav.master(继承global.master)
  3. LargeTopNav25-50-25.master(继承LargeTopNav.master)
  4. feature.aspx - 此页面是我想访问我在LargeTopNav.master上设置属性的自定义用户控件的地方。
  5. 我对.net很新,所以感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

您可以在 feature.aspx 页面上设置MasterType property,例如:

<%@ MasterType VirtualPath="~/masters/LargeTopNav.master" %>

然后,依次通过您在 LargeTopNav.master 母版页类中创建的属性提供对控件属性的访问:

public partial class LargeTopNavMaster : MasterPage
{
    // ...

    public string ThePropertyOfTheContainedControl
    {
        get { return MyContainedControl.TheProperty; }
        set { MyContainedControl.TheProperty = value; }
    }

    // ...
}

最后,在 feature.aspx 页面中,访问提供对基础控件的访问权的母版页的属性:

public partial class Feature : Page
{
    // ...

    protected void Page_Load( object sender, EventArgs e )
    {
        Master.ThePropertyOfTheContainedControl = "Some nice text.";
    }

    // ...
 }

答案 1 :(得分:0)

通常我在这种情况下所做的是让您的母版页实现一个界面(具有您的用户控件的属性),然后从您的页面feature.aspx使用this.Master(或{{ 1}},确保检查this.Master.Master)以获得对母版页的引用。

然后,只需将主页面转换为您的界面,然后访问该属性即可。