2011-03-05 97 views
1

母版页:ASP.net获取内容页面更改母版页控制

<form runat="server"> 
<Scirra:MainMenu runat="server" ID="MainMenu" TopTabSelected="home" SubTabSelected="link2" /> 
<asp:ContentPlaceHolder id="MainContent" runat="server"> 
snip 

内容页:

Master.MainMenu.TopTabSelected = "forum"; 

我知道我可能这样做不对,但这可能吗?我想更改该控件的参数。它说'inaccessible due to protection level'

+0

[对不起,刚才看到物业的标记,忽略先前的]但是仍然尝试'var mainmenu = Master.FindControl(“MainMenu”)作为MainMenu;如果(MainMenu的!= NULL)mainmenu.TopTabSelected = “论坛”;' – 2011-03-05 23:29:41

回答

2

您应该在您的MasterPage中提供一个公共属性f.e MenuTabSelected,该属性获取/设置菜单的此属性。

public string MenuTabSelected { 
    get { return MainMenu.TopTabSelected; } 
    set { MainMenu.TopTabSelected = value; } 
} 

然后你就可以以这种方式访问​​它:

((YourMasterPage)Master).MenuTabSelected = "forum"; 

其中YourMasterPage是你的母版的类型。

编译器错误是由于您想要从您的MasterPage-Class外部访问私有或受保护的控件而引发的。这只会被允许,如果它会公开,什么is not recommended。你有更多的控制权,如果你做到这一点,我建议的方式:)

0

查找菜单项的内容页面,并改变它的值

protected void Page_Load(object sender, EventArgs e) 
{ 


Menu mainMenu = (Menu)Page.Master.FindControl("NavigationMenu"); 

MenuItem menuMaterials = mainMenu.FindItem("Materials"); 

    if (menuMaterials.Value == "Materials") 
    { 
     menuMaterials.Value = "NO materials"; 
     menuMaterials.Text = "No materials"; 
    } 

}