1. 网站地图文件Web.sitemap

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
    <siteMapNode url="~/Default.aspx" title="首页"  description="首页" resourceKey="root">
      <siteMapNode url="~/Category.aspx" title="分类页" description="分类页" resourceKey="category">
        <siteMapNode url="~/Item.aspx" title="单品页" description="单品页" resourceKey="item" />
      </siteMapNode>
    </siteMapNode>
</siteMap>

2. 页面上增加站点地图控件

<asp:SiteMapPath ID="SiteMapPath1" runat="server">
 </asp:SiteMapPath>

页面就会显示出相应的页面站点地图名:

首页、分类页、单品页 等

3. 覆写方法,使得面包屑显示的名称更为人性化

比如女装分类页面,地图上不只是显示:首页->分类页,而是显示为:首页->女装分类。

这样就要在 分类页Category.aspx ,Page_Load里增加事件:

if (!IsPostBack && !string.IsNullOrEmpty(Request.QueryString["name"]))
   {
       SiteMap.SiteMapResolve += new SiteMapResolveEventHandler(thisPage_SiteMap_SiteMapResolve);
    }

SiteMap.SiteMapResolve += new SiteMapResolveEventHandler(thisPage_SiteMap_SiteMapResolve);

事件说明:

SiteMapResolve事件处理动态地改变目前的SiteMapNode。

本页面覆写事件方法thisPage_SiteMap_SiteMapResolve:

SiteMapNode thisPage_SiteMap_SiteMapResolve(object sender, SiteMapResolveEventArgs e)
        {
            // 只需要在一个执行一个请求。

SiteMap.SiteMapResolve -= new SiteMapResolveEventHandler(thisPage_SiteMap_SiteMapResolve);

if (SiteMap.CurrentNode != null)
            {
                // SiteMap.CurrentNode是只读的,所以我们需要一个克隆操作。

SiteMapNode currentNode = SiteMap.CurrentNode.Clone(true);

currentNode.Title = Request.QueryString["name"];

// Use the changed one in the breadcrumb.
                return currentNode;
            }
            return null;
        }

这样URL :/Category.aspx?name=女装分类 ,显示为 : 首页 > 女装分类

4. 覆写 单品页 站点地图面包屑。

在覆写前,显示如下 首页 > 分类页 > 单品页

要显示如下: 首页 > 女装分类 > 时尚外套

同上面增加页面

if (!IsPostBack && !string.IsNullOrEmpty(Request.QueryString["name"]))
   {
       SiteMap.SiteMapResolve += new SiteMapResolveEventHandler(thisPage_SiteMap_SiteMapResolve);
    }

覆写方法:

SiteMapNode thisPage_SiteMap_SiteMapResolve(object sender, SiteMapResolveEventArgs e)
        {
            // 只能请求一次
            SiteMap.SiteMapResolve -= new SiteMapResolveEventHandler(thisPage_SiteMap_SiteMapResolve);

if (SiteMap.CurrentNode != null)
            {
                // SiteMap.CurrentNode是只读的,所以我们需要一个克隆操作。
                SiteMapNode currentNode = SiteMap.CurrentNode.Clone(true);

currentNode.Title = Request.QueryString["name"];
  
  //从数据库取出当前单品的分类名
                currentNode.ParentNode.Title = Database.GetCategoryByItem(Request.QueryString["name"]);
                currentNode.ParentNode.Url = "/Category.aspx?name=" + Database.GetCategoryByItem(Request.QueryString["name"]);

// 返回改变后的面包屑
                return currentNode;
            }
            return null;
        }

下载代码

转载于:https://www.cnblogs.com/anan/archive/2011/04/15/2016959.html

根据URL参数显示网站地图相关推荐

  1. ASP.NET 实践:在非层次化控件中显示网站地图的数据

    网站地图数据包含的是层次化信息,每个节点都可以包含零个或多个子节点.TreeView 和 Menu 控件就是专门为层次化数据而设计的.但是,网站地图数据也可以绑定到非层次化控件(如 DropDownL ...

  2. 网络推广策略带你了解网站地图Sitemap的作用是什么?

    在网站优化中,网络推广策略中的网站地图Sitemap的初心是为了方便用户浏览而建立的.最后不仅达到了提升用户体验的目的,还能逐渐吸引搜索引擎的注意,从此提升网站的收录率,实现一举两得的效果.那么网站地 ...

  3. 网站XML格式的网站地图(sitemap)格式

    给网站建立一个sitemap.xml的网站地图有助于搜索引擎对网站的抓取效率,对于很多新手站长来说不知道怎么建立一个xml格式的网站地图,本文就将给大家把sitemap地图的格式贴出来,大家只需要简单 ...

  4. HTML基础(四):注释、URL参数、访问路径、图片地图

    1.注释:<!- -内容- -> <body><iframesrc="http://www.sina.com.cn"height="300& ...

  5. html的子页面获取自己url,如何从html页面获取url参数并将其显示在textarea中?

    我用下面的在我的HTML页面的JavaScript功能,我想没有textarea的任何连接操作正常显示参数....如何从html页面获取url参数并将其显示在textarea中? function g ...

  6. jar 工程我怎么在网页上url访问某一个方法_url及url参数与seo网站优化的关系

    短视频,自媒体,达人种草一站服务 首先我还是援引下百度百科关于url的定义. 统一资源定位符(Uniform Resource Locator,缩写为URL)是对可以从互联网上得到的资源的位置和访问方 ...

  7. ECshop生成网站地图url

    ECShop简单重写或动态,ECshop生成网站地图URL重复不能打开 2013-9-2 在管理业目录下面? /admin/sitemap.php 生成的网站地图地址:http://www.jdcct ...

  8. Go爬虫colly官方示例二十一【shopify_sitemap】- 使用XPath请求抓取shopify网站地图里url

    文章目录 示例介绍 示例代码 名词解释 Sitemap 简介 XPath 输出 转载请标明出处: http://blog.csdn.net/qq_27818541/article/details/11 ...

  9. seo 优化 以及网站地图 很透彻

    一.什么是搜索引擎 搜索引擎是一个帮助用户搜索他们需要内容的计算机程序.换一种说法,搜索引擎把计算机中存储的信息与用户的信息需求相匹配,并把匹配的结果展示出来. 举个例子:你想买iPhone12,想了 ...

最新文章

  1. linux 内核 sscanf,linux sscanf()
  2. UIApplicaton详情
  3. 网络编程学习笔记(getsockopt和setsockopt函数)
  4. StoreFront 登陆页面的话持续时间
  5. matlab 凹盘,刹车盘凹槽是怎么形成的
  6. 计算机程序无法运行,win7电脑程序打不开解决方法
  7. linux ip head check sun,linux panic 问题定位
  8. 在C4C UI里嵌入CRM WebClient UI
  9. 算法设计中的基础常用代码
  10. 房子网签后房产局查不到信息_日本房子:1R、1LDK分不清?凶宅如何分辨?
  11. Qt DLL总结【三】-VS2008+Qt 使用QPluginLoader访问DLL
  12. 洛谷 P1028 数的计算【递推】
  13. Zabbix 触发器函数方法整理
  14. mybatis 存储过程 tmp_count_MyBatis框架介绍及实战操作
  15. Rviz教程系列第一章之Markers
  16. linux服务器时间不一致,Linux服务器时间不准确
  17. 华为盒子EC6110-T-通刷-免拆刷机固件及教程
  18. TCP、UDP、CoAP、LwM2M、MQTT简单对比
  19. 物联网共享打印机系统是怎么做出来的?
  20. FME进阶视频教程: FME使用技巧之高级扇出,讲解在FME中输出数据的高级方式,满足数据个性化分类输出的需求

热门文章

  1. mongoDB - 日常操作四
  2. 在路上---学习篇(一)Python 数据结构和算法 (4) --希尔排序、归并排序
  3. 1091. Acute Stroke (30)
  4. CentOS7-64bit 编译 Hadoop-2.5.0,并分布式安装
  5. [ios2]iOS 使用subversion管理iOS源代码 【转】
  6. cursor_sharing用法
  7. windows10风格 springboot activiti 整合项目框架源码 shiro 安全框架 druid 数据库连接池...
  8. Android PullToRefreshListView设置各个item之间的间距
  9. Duo Labs:五大厂商的笔记本预装软件存在重大安全隐患
  10. How to tell if UIViewController's view is visible