Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript隐藏或禁用asp菜单项_Javascript_Asp.net Mvc_Vb.net 2010 - Fatal编程技术网

使用Javascript隐藏或禁用asp菜单项

使用Javascript隐藏或禁用asp菜单项,javascript,asp.net-mvc,vb.net-2010,Javascript,Asp.net Mvc,Vb.net 2010,我有一个ASP菜单,其中有一些菜单项。见以下代码: <asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">

我有一个ASP菜单,其中有一些菜单项。见以下代码:

<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu"
    EnableViewState="false" IncludeStyleBlock="false"
    Orientation="Horizontal">
                        <Items>
          <asp:MenuItem NavigateUrl="~/Home.aspx" Text="Home"/>
          <asp:MenuItem NavigateUrl="~/AboutUs.aspx" Text="About"/>
          <asp:MenuItem NavigateUrl="~/Admin.aspx" Text="Admin"/>
          <asp:MenuItem NavigateUrl="~/UserAccount.aspx" Text="User"/> 
                        </Items>
                    </asp:Menu>
我想根据登录会话隐藏或禁用第三个菜单项。我知道如何处理会话,但我不知道如何隐藏一个asp:菜单项。我无法将CSS应用于单个菜单项。
因此,请告诉我该怎么做。

如果是要隐藏的管理区域,则可以在页面加载后使用jquery:

    $('asp:MenutItem[Text="Admin"]').hide();             

    //note you will need to replace selector with generated html
    //something like
    $('#NavigationMenu a[title="Admin"]').hide(); 
如果可以的话,最好是限制服务器端的列表,这样限制菜单就固定在那里了,如下所示:

        if (!Roles.IsUserInRole("Admin"))
        {
            MenuItemCollection menuItems = NavigationMenu.Items;
            MenuItem adminItem = new MenuItem();
            foreach (MenuItem menuItem in menuItems)
            {
                if (menuItem.Text == "Admin")
                    adminItem = menuItem;
            }
            menuItems.Remove(adminItem);
        }

为什么要使用javascript?它在asp.net框架呈现的html上运行,您将无法访问该会话

这个问题可能就是你想要的:

如何使用javascript隐藏或禁用asp菜单项

如果您确实需要使用JavaScript,以下是一些代码:

//  Hide one of the top-level ASP.Net menu items

var menuItemToHide = "Rating";

var menuItems = $(".AspNet-Menu-Horizontal > ul > li > a");
$.each(menuItems, function () {
    var menuText = $(this).text().trim();
    if (menuText == menuItemToHide) {
        $(this).parent().hide();
    }  
});
我们有一个ASP.Net应用程序,其中用户的角色不是来自Active Directory,因此我不能将某些内容粘贴到Web.sitemap或Web.config中。这段代码使用JQuery在我的ASP.NETASP:menu控件中迭代顶级菜单项,并删除评级菜单