1

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

4 回答 4

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>
于 2012-10-12T15:23:36.993 回答
1

您可以像这样从内容页面访问:

MasterPagename ms = Master as MasterPagename ;
ms.NavigatorMenu.Items[0].disabled = true;
于 2012-10-12T15:02:00.283 回答
1

我认为您可以使用内容占位符:

前母版页:

添加:

<asp:contentplaceholder id="Menu" runat="server">
<!-- Menu here -->
</asp:contentplaceholder>

在内容页面(在您的示例中为 Page1)中,您在dont want to show菜单中添加以下标签并将其从您希望菜单显示的所有内容页面中删除:

<asp:Content ID="menuContent1" ContentPlaceHolderID="Menu" Runat="Server">    
</asp:Content>
于 2012-10-12T15:06:02.823 回答
0

在内容页面中查找菜单项并在 pageload() 上禁用它

 protected void Page_Load(object sender, EventArgs e)
{


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

  foreach (MenuItem m in mainMenu.Items)
    {
        m.Enabled = false;
}

}
于 2013-01-03T06:26:57.973 回答