2010-05-27 75 views
2

我正在使用asp:menu来显示主页中的菜单。如果我单击菜单项1,相应的页面将加载到内容页面中。我需要选择的菜单项应该用某种颜色突出显示。请帮助我。asp:菜单选定的菜单项目高亮

菜单代码如下:

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

回答

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

+0

在挫折中几乎抨击我的头靠在墙上,然后我发现了这一点。问题解决了。谢谢! – Neville 2014-04-10 13:18:05

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; 
      } 
     } 
    } 
+0

其显示像,路径不存在于正确的上下文...可以告诉我关于上述编码变量和ID使用... – Naimur 2010-05-27 13:32:03

+0

路径在System.IO namspace中。你有包括吗? 您没有包含声明的第一行,所以我认为它被称为Menu1。 – starskythehutch 2010-05-28 10:33:53