asp:菜单选择的菜单项突出显示

时间:2010-05-27 12:49:49

标签: asp.net

我正在使用asp:menu来显示母版页中的菜单。如果单击菜单项1,则会在内容页面中加载相应的页面。我需要用一些颜色突出显示所选的菜单项。请帮帮我。

菜单代码如下:

<asp:menu id="NavigationMenu"
    staticsubmenuindent="10px" 
    orientation="Horizontal"
    runat="server" BackColor="#E3EAEB" DynamicHorizontalOffset="2" Font-Names="Verdana" Font-Size="0.8em" ForeColor="#666666">

    <items>
      <asp:menuitem text="Home" Value="Home" NavigateUrl="~/page1.aspx"></asp:menuitem>
      <asp:MenuItem NavigateUrl="~/page2.aspx" Text="About" value="About"></asp:MenuItem>
      <asp:MenuItem NavigateUrl="~/page1.aspx" Text="Contact" Value="Contact"></asp:MenuItem>
    </items>
   <StaticSelectedStyle BackColor="#1C5E55" />
   <StaticMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" />
   <DynamicHoverStyle BackColor="#666666" ForeColor="White" />
   <DynamicMenuStyle BackColor="#E3EAEB" />
   <DynamicMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" />
   <StaticHoverStyle BackColor="#666666" ForeColor="White" />
   <StaticItemTemplate>
       <%# Eval("Text") %>
   </StaticItemTemplate>
</asp:menu>

2 个答案:

答案 0 :(得分:3)

您可以使用类似选项(并最终突出显示)活动菜单项。

protected void Page_Load(object sender, EventArgs e)
    {
        foreach (MenuItem item in Menu1.Items)
        {
            if (Path.GetFileName(item.NavigateUrl).Equals(
                Path.GetFileName(Request.PhysicalPath), 
                StringComparison.InvariantCultureIgnoreCase))
            {
                item.Selected = true;
            }
        }
    }

答案 1 :(得分:1)

您应该创建.sitemap并将菜单绑定到站点地图。以下链接概述了如何使用包含菜单的站点地图以及如何为菜单启用安全修整。

http://weblogs.asp.net/jgalloway/archive/2008/01/26/asp-net-menu-and-sitemap-security-trimming-plus-a-trick-for-when-your-menu-and-security-don-t-match-up.aspx