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

标签 c# asp.net menubar

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

我在 Master Page Code Behind 上尝试过这个,但它也没有用:

 foreach (MenuItem item in NavigationMenu.Items)
        {
            var navigateUrlParams = item.NavigateUrl.Split('/');
            if (Request.Url.AbsoluteUri.IndexOf(navigateUrlParams[navigateUrlParams.Length - 1]) != -1)
            {
                item.Selected = true;
            }
        }

在我的标记 View 中我有这个:

 <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 链接类来实现:

http://www.w3schools.com/css/sel_active.asp

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

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

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

关于c# - 在 ASP.NET Web 应用程序中突出显示菜单栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5967119/

相关文章:

c# - 如何使用 MainMenu 在状态栏上显示与菜单项相关的文本?

c# - 没有服务定位器的领域事件

c# - 如何在 ASP.NET MVC 中通过 Ajax 提交表单?

c# - 隐藏 Umbraco 属性

objective-c - 菜单栏应用程序永远不会重新激活

c# - 向 HtmlWeb 类添加函数

asp.net - 有没有适用于 ASP.NET 的磁盘缓存解决方案?

javascript - 无法获取 Javascript 中的文本框值

html - 将文本与html中的图像链接起来?

html - CSS 用颜色填充水平菜单栏