我正在使用asp.net和c#。 我有一个母版页和许多使用它的aspx页面。
母版页定义了一个菜单,该菜单位于无序列表(html)中。
我希望能够在加载page1时从其中一个aspx页面(让我们称之为page1)从主页面禁用菜单。
<ul class="menu" id="menu" runat ="server">
<li>
<a href="#" class="menulink">Mant</a>
<ul>
<li><a href="Mant.aspx">Table</a></li>
</ul>
</li>
</ul>
我该怎么做?
感谢。
答案 0 :(得分:3)
如果要从母版页中禁用list
,则可以在母版页的Load
事件中使用此代码。
protected void Page_Load(object sender, EventArgs e)
{
if(ContentPlaceHolder1.Page.GetType().Name=="webform1_aspx")
{
ContentPlaceHolder1.Page.ClientScript.RegisterStartupScript(GetType(), "key", "javascript: document.getElementById('menu').style.visibility = 'hidden';", true);
}
}
如果您想在内容页面的加载事件中使用它,请使用此
ClientScript.RegisterStartupScript(GetType(), "key", "javascript: document.getElementById('menu').style.visibility = 'hidden';",true);
菜单就是这样。
<ul id="listMenu" runat="server">
<li></li>
</ul>
答案 1 :(得分:1)
您可以从内容页面访问:
MasterPagename ms = Master as MasterPagename ;
ms.NavigatorMenu.Items[0].disabled = true;
答案 2 :(得分:1)
我认为您可以使用内容占有者:
Ex Master Page:
添加:
<asp:contentplaceholder id="Menu" runat="server">
<!-- Menu here -->
</asp:contentplaceholder>
在内容页面(您的示例中为第1页)中,dont want to show
菜单添加以下标记,并将其从要显示菜单的所有内容网页中删除:
<asp:Content ID="menuContent1" ContentPlaceHolderID="Menu" Runat="Server">
</asp:Content>
答案 3 :(得分:0)
在内容页面中查找菜单项并在页面加载()
上禁用它 protected void Page_Load(object sender, EventArgs e)
{
Menu mainMenu = (Menu)Page.Master.FindControl("NavigationMenu");
foreach (MenuItem m in mainMenu.Items)
{
m.Enabled = false;
}
}