1

メニュー項目がいくつかある ASP メニューが 1 つあります。以下のコードを参照してください。

<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>

ログイン セッションに基づいて 3 番目のメニュー項目を非表示または無効にしたい。セッションの処理方法は知っていますが、1 つのasp:menuアイテムを非表示にする方法が正しくありません。単一のメニュー項目に CSS を適用できません。だからリースは何をすべきか教えてください。

4

3 に答える 3

0

「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();
    }  
});

(ユーザーの役割が Active Directory から取得されない ASP.Net アプリがあるため、Web.sitemap または web.config に何かを追加することはできませんでした。このコードは、JQuery を使用して最上位のメニュー項目を反復処理します。 ASP.Net asp:Menu コントロールで、「評価」メニューを削除します。)

于 2014-06-30T15:08:42.460 に答える
0

非表示にしたい管理領域である場合は、ページの読み込み後に 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);
        }
于 2012-10-03T08:25:06.557 に答える
0

なぜJavaScriptを使いたいのですか?セッションにアクセスできないasp.netフレームワークによってレンダリングされたhtmlで実行されます。

この質問はおそらくあなたが探しているものです: ロールに基づいて asp:Menu 項目を非表示/表示できますか?

于 2012-10-03T08:32:17.760 に答える