2011-11-10 93 views
2

有沒有辦法從嵌套母版頁訪問用戶控件的puplic屬性?從嵌套母版頁訪問用戶控件

讓我來解釋進一步

我有3個深深的母版頁

  1. global.master
  2. LargeTopNav.master(繼承global.master)
  3. LargeTopNav25-50-25。 master(繼承LargeTopNav.master)
  4. feature.aspx - 此頁面是我想訪問我們自定義的頁面呃控制我在LargeTopNav.master上能夠設置屬性。

我對.net相當陌生,所以任何幫助表示讚賞。

回答

1

有一個MasterType property,你可以像例如feature.aspx頁面上設置:

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

然後,反過來,通過你在LargeTopNav創建屬性提供訪問控件的屬性。主母版頁類:

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."; 
    } 

    // ... 
} 
+0

很失落。 MasterType可以有兩個屬性 - 我是否將它們設置爲largeTopNav.master?那麼,我如何通過largetopvan.master頁面類創建屬性? – nkuebelbeck

+1

我對.net非常陌生,我知道自己已經足夠危險:) – nkuebelbeck

+0

@nkuebelbeck我已經從MSDN頁面添加了示例,參見上文。 –

0

一般我在這種情況下做的就是讓你的母版頁實現一個接口(這將對您的用戶控件的屬性),然後從你的頁面feature.aspx使用this.Master(或this.Master.Master,請務必檢查null)以獲取對母版頁的引用。

然後,只需將主頁面轉到您的界面並訪問該屬性即可。

相關問題