asp.net + CSS实现动态菜单突出显示当前页面!

     搞了两天的问题终于解决了,网上关于突出显示当前页面的文章有不少,但是基本都是关于实现静态菜单的高亮,讲到动态生成菜单高亮的文章至少我没有找到,在csdn上问了两天都没有答案,最后在一位朋友的回答中找到思路,先利用一个函数判断菜单是否是正在浏览的当前页,然后付给li一个id,利用css层叠id大于class的关系,把这个id定义成高亮样式。

aspx文件代码
引用内容 引用内容

          <div class="navigation">
               <ul>
         <asp:Repeater ID="Menu" runat="server">
         <ItemTemplate >
                  <li <%# getCss(DataBinder.Eval(Container,"DataItem.Url"))%>><a href ='<%#DataBinder.Eval(Container,"DataItem.Url")%>'> <%#DataBinder.Eval(Container,"DataItem.ClassName")%></a></li>
         </ItemTemplate>
         </asp:Repeater>
               </ul>
         </div>


后台代码:vb版本
引用内容 引用内容

    Public Function getCss(ByVal Url As Object) As String
        Dim curPageName As String = HttpContext.Current.Request.Url.Segments(HttpContext.Current.Request.Url.Segments.Length - 1)
        If Url.ToString.ToLower = curPageName.ToLower Then
            Return "id='activer'"
        Else
            Return Nothing
        End If
    End Function

C#版本
引用内容 引用内容

public string getCss(object Url)
{
string curPageName = HttpContext.Current.Request.Url.Segments(HttpContext.Current.Request.Url.Segments.Length - 1);
if (Url.ToString.ToLower == curPageName.ToLower) {
   return "id='activer'";
} else {
   return null;
}
}

CSS样式
引用内容 引用内容

.navigation {
    background: url(../images/navigation-bg.png);
    height: 38px;
    width :1003px;
    overflow: hidden;
    line-height: 2em;
}

.navigation ul {
    list-style: none;
    margin: 0 auto;
    padding: 0;
    text-align: left;
    width: 970px;
}

.navigation ul li {
    background: none;
    display: inline;
    float: left;
    list-style-type: none;
    padding: 0;
}

.navigation ul li a {
    color: #666;
    display: block;
    height: 25px;
    overflow: hidden;
    padding: 5px 15px 0 15px;
    text-decoration: none !important;
}

.navigation ul li a:hover {
    color: #fff !important;
}
#activer a{                         '这个就是高亮菜单的样式,这里我用了背景图片
    background: url(../images/navigation-active.gif);
    color: #a21 !important;
    font-weight: bold;
    cursor:default;     '把鼠标样式改为默认的箭头,即不会诱使用户点击连接  
}


最后效果图



 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 ASP.NET MVC 的展会列表中增加右键菜单,可以按照以下步骤进行: 1. 首先,在视图文件(.cshtml)中的展会列表中找到合适的位置来添加右键菜单。 2. 使用 HTML 和 Razor 语法创建右键菜单的 HTML 结构,可以使用 `<div>` 元素作为菜单容器,使用 `<ul>` 和 `<li>` 元素创建菜单项。例如: ```html <div class="context-menu"> <ul> <li><a href="#">立项申请</a></li> <li><a href="#">其他菜单项</a></li> <!-- 可以根据需要添加更多菜单项 --> </ul> </div> ``` 3. 在视图文件中,为展会列表的每一行或每一个展会项添加一个右键菜单触发事件。可以使用 JavaScript 或 jQuery 来监听右键点击事件,并在点击事件发生时显示右键菜单。 例如,使用 jQuery 监听右键点击事件,并显示右键菜单: ```javascript $(document).on("contextmenu", ".exhibition-item", function(e) { e.preventDefault(); var $contextMenu = $(".context-menu"); $contextMenu.css({ top: e.pageY + "px", left: e.pageX + "px", display: "block" }); }); ``` 在上述示例中,我们使用了类名为 ".exhibition-item" 的元素作为右键触发点,当用户在该元素上右键点击时,阻止默认的右键菜单弹出,并显示我们创建的自定义右键菜单。 此外,你还可以添加其他事件处理逻辑,例如在菜单项被点击时执行相应的操作。 请根据你的具体需求和样式自定义右键菜单的外观和功能。 希望这些信息对你有所帮助。如果有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值