C# 在ASP.NET Web应用程序中突出显示菜单栏

C# 在ASP.NET Web应用程序中突出显示菜单栏,c#,asp.net,menubar,C#,Asp.net,Menubar,我使用ASP.NET Visual Studio 2010和母版页构建了一个web应用程序。正如您将看到的,该项目为我们提供了一个默认菜单栏项。我有5页(链接)在那些菜单栏上列出。现在,当用户转到特定页面时,我想突出显示菜单栏链接。我不知道怎么做:( 我在母版页代码中尝试了这一点,但它也不起作用: foreach (MenuItem item in NavigationMenu.Items) { var navigateUrlParams = item.

我使用ASP.NET Visual Studio 2010和母版页构建了一个web应用程序。正如您将看到的,该项目为我们提供了一个默认菜单栏项。我有5页(链接)在那些菜单栏上列出。现在,当用户转到特定页面时,我想突出显示菜单栏链接。我不知道怎么做:(

我在母版页代码中尝试了这一点,但它也不起作用:

 foreach (MenuItem item in NavigationMenu.Items)
        {
            var navigateUrlParams = item.NavigateUrl.Split('/');
            if (Request.Url.AbsoluteUri.IndexOf(navigateUrlParams[navigateUrlParams.Length - 1]) != -1)
            {
                item.Selected = true;
            }
        }
在我的加价观点中,我有:

 <div class="clear hideSkiplink">
            <asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal"  OnMenuItemClick="NavigationMenu_MenuItemClick">
                <Items>
                    <asp:MenuItem Text="Test1"/>
                     <asp:MenuItem Text="Test2"/>
                     <asp:MenuItem  Text="Test3"/>

                </Items>
            </asp:Menu>
        </div>

所以,基本上每当用户来到Test1.aspx页面,我都希望突出显示Test1的菜单项。我应该怎么做


任何帮助都将不胜感激!谢谢…

使用CSS链接类来实现此功能:

除非您“需要”对这些链接项执行编程操作,否则请改用HTML锚定链接。将它们创建为列表项:

<ul class="menu">
    <li>
        <a href="~/Home" id="link1" title="First Link" runat="server">Link 1</a>
    </li>
</ul>

我想说的是质疑这里是否需要控件(不熟悉您的项目),并尽可能保持标记的简单性。

首先确保您的菜单项都有Id属性

在母版页代码中,在页面加载处理程序中执行如下操作

if (!Page.IsPostBack)
{
      if(Page is Default)
           liHome.Attributes["class"] += " active";

}
在本例中,您将检查当前查看页面的“类型”,并将添加到当前导航链接的class属性中

.active
{
    background-color: Red;
}