母版页
<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 :(得分:2)
您应该在MasterPage中提供一个公共属性f.e MenuTabSelected
,获取/设置菜单的此属性。
public string MenuTabSelected {
get { return MainMenu.TopTabSelected; }
set { MainMenu.TopTabSelected = value; }
}
然后你可以这样访问它:
((YourMasterPage)Master).MenuTabSelected = "forum";
其中YourMasterPage
是您的MasterPage的类型。
抛出编译器错误,因为您要从MasterPage-Class外部访问私有或受保护的控件。只有在公开的情况下才允许这样做,is not recommended。如果按照我建议的方式进行操作,您可以获得更多控制权:)
答案 1 :(得分: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";
}
}