asp.net禁用母版页面菜单

时间:2012-10-12 14:55:46

标签: asp.net

我正在使用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>

我该怎么做?

感谢。

4 个答案:

答案 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;
}

}