当前位置:  开发笔记 > 后端 > 正文

程序化解决方案,用于更改导航ID以突出显示当前页面ASP.NET

如何解决《程序化解决方案,用于更改导航ID以突出显示当前页面ASP.NET》经验,为你挑选了2个好方法。

我正在用Visual Studio 2008和ASP.NET 3.5编写一个网站.我设置了一个母版页来简化布局并保留内容页面而不是内容和布局.

导航是列表,css'd所以它看起来像一个酒吧.为了突出显示栏上的页面,列表项需要如下所示

  • .如果我可以避免它,我不想使用它.是否有一些代码可以添加到我的每个页面(或者只是添加到母版页?)来实现这一目标,还是我坚持使用



    1> Joshua Carmo..:

    您是否考虑过使用Web.sitemap文件?这真的很容易.如果您的站点地图文件看起来像这样......

    
    
      
        
        
        
      
    
    

    ...然后您可以在母版页中执行此操作以获得所需的结果:

    
    
    

    当前页面的LI将具有一类"activenav"(或您决定使用的任何内容),而其他页面将具有"inactivenav"类.你可以相应地编写你的CSS.这是我在我的网站上使用的技术,效果很好.


    这对我有用 - 一个小问题,我不得不为SiteMap.CurrentNode == null添加一个检查,因为我所拥有的所有页面都不在站点地图中.这似乎是最干净的选择!

    2> John Sheehan..:

    将属性添加到名为Page Section的母版页

    public string PageSection { get; set; }
    

    将MasterType页面指令添加到内容页面的顶部

    <%@ MasterType VirtualPath="~/foo.master" %>
    

    在后面的内容页面代码中,设置母版页的PageSection属性

    Master.PageSection = "home";    
    

    在主页面中,将body标记设置为服务器标记

    
    

    在后面的母版页代码中,使用该属性在body标记上设置类

    bodyTag.Attributes.Add("class", this.PageSection);
    

    为每个导航项添加唯一的ID属性.

    在您的css中,根据当前页面类更改导航项的显示

    .home #homeNavItem,
    .contact #contactNavItem
    { 
        color: #f00; 
    } 
    

  • 推荐阅读
    携手相约幸福
    这个屌丝很懒,什么也没留下!
    DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
    Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有