揭开站点导航的面纱(二)动态修改内存中的站点地图
2012-07-18 17:27
302 查看
在上一篇博文中我们通过一个简单的例子了解了站点导航的内容。
这一篇博文,我们来看一下动态修改内存中的站点地图,那么到底是什么意思呢?
在日常浏览中,我们常常会发现类似于http://new.com/id=3&page=12这样的格式,遇上这样的问题,那么文章列表中通常都有多篇,我们总不能把这些都放到站点地图中去,何况文章ID、栏目编号、商品分类或者商品ID也不是我们事先能够预料到的,那么站点地图里没有,外面就不能显示,该怎么办呢?这就需要用到动态修改内存中的站点地图了。
如上面提出的问题,我们假设有一个文章管理系统结构如下:
首页-新闻-国际新闻(列表)
那么可以假设国际新闻这一级的页面是list.aspx,不同的栏目会有不同的ID,那么地址结构就假设如下:
xxx.com--~/news/--list.aspx?id=3&page=12
这样一个结构,我们对新闻列表页的处理就可以只在站点地图中静态地写上url="~/news/list.aspx"。那么如果在别人浏览时呈现出上面的结构呢,我们接下来处理。
Web.sitemap:
主要就是用到title为动态修改内存中的这一句来演示。
然后在演示页面sitemap.aspx中放一个SitemapPath控件,注意设置它的renderCurrentNodeAsLink为true(指示当前结点为链接)
页面的后台代码:
解释:上面的nid()和npage(),是用来获取参数的两个方法,实际中根据实际情况而定。
运行,我们看看这个链接的属性:
![](http://my.csdn.net/uploads/201207/18/1342603291_9293.png)
到此,我们就很简单的实现了动态修改内存中的站点地图了!
站点导航,是我们在BS开发中非常常用的,所以我们还是很有必要深刻掌握的,接下来还会发相关的文章,与大家一讨论学习!
转载请说明出处!
这一篇博文,我们来看一下动态修改内存中的站点地图,那么到底是什么意思呢?
在日常浏览中,我们常常会发现类似于http://new.com/id=3&page=12这样的格式,遇上这样的问题,那么文章列表中通常都有多篇,我们总不能把这些都放到站点地图中去,何况文章ID、栏目编号、商品分类或者商品ID也不是我们事先能够预料到的,那么站点地图里没有,外面就不能显示,该怎么办呢?这就需要用到动态修改内存中的站点地图了。
如上面提出的问题,我们假设有一个文章管理系统结构如下:
首页-新闻-国际新闻(列表)
那么可以假设国际新闻这一级的页面是list.aspx,不同的栏目会有不同的ID,那么地址结构就假设如下:
xxx.com--~/news/--list.aspx?id=3&page=12
这样一个结构,我们对新闻列表页的处理就可以只在站点地图中静态地写上url="~/news/list.aspx"。那么如果在别人浏览时呈现出上面的结构呢,我们接下来处理。
Web.sitemap:
<?xml version="1.0" encoding="utf-8" ?> <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > <siteMapNode url="a.aspx" title="首页" description="1"> <siteMapNode url="b.aspx" title="根目录B页" description="2" /> <siteMapNode url="Default.aspx" title="Default页" description="3" /> <siteMapNode url="" title="one目录" description="4"> <siteMapNode url="~/one/a.aspx" title="one目录下的a" description="5"/> <siteMapNode url="~/one/b.aspx" title="one目录下的b" description="6"/> <siteMapNode url="" title="one目录下的once目录" description="7"> <siteMapNode url="~/one/once/a.aspx" title="one目录下的once目录下的a" description="8"/> <siteMapNode url="~/one/once/b.aspx" title="one目录下的once目录下的b" description="9"/> </siteMapNode> </siteMapNode> <siteMapNode url="" title="two目录" description="10"> <siteMapNode url="~/two/a.aspx" title="two目录下的a" description="11"/> <siteMapNode url="~/two/b.aspx" title="two目录下的b" description="12"/> </siteMapNode> <siteMapNode url="sitemap.aspx" title="动态修改内存中" description="动态修改内存中的站点地图"/> </siteMapNode> </siteMap>
主要就是用到title为动态修改内存中的这一句来演示。
然后在演示页面sitemap.aspx中放一个SitemapPath控件,注意设置它的renderCurrentNodeAsLink为true(指示当前结点为链接)
页面的后台代码:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace Navigation { public partial class sitemap : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //首先我们在这里注册一个事件,也就是说在访问CurrentNode属性的时候触发这个事件 SiteMap.SiteMapResolve+=new SiteMapResolveEventHandler(SiteMap_SiteMapResolve); } SiteMapNode SiteMap_SiteMapResolve(object sender,SiteMapResolveEventArgs e) { //我们自定义的处理方法 获取并创建当前节点的副本,并同时复制他的上级节点 SiteMapNode CurrentNode = SiteMap.CurrentNode.Clone(true); SiteMapNode TempNode = CurrentNode; int id = nid(); int page = npage(); //从下面方法中得到变量 if (id>0) { TempNode.Url = TempNode.Url + "?id=" + id.ToString(); } if (id>0 && page>=0) { TempNode.Url = TempNode.Url + "&page=" + page.ToString(); } else if (page>0) { TempNode.Url = TempNode.Url + "?page=" + page.ToString(); } return TempNode; } //随便设置一个数。 private int nid() { return 3; } private int npage() { return 12; } } }
解释:上面的nid()和npage(),是用来获取参数的两个方法,实际中根据实际情况而定。
运行,我们看看这个链接的属性:
![](http://my.csdn.net/uploads/201207/18/1342603291_9293.png)
到此,我们就很简单的实现了动态修改内存中的站点地图了!
站点导航,是我们在BS开发中非常常用的,所以我们还是很有必要深刻掌握的,接下来还会发相关的文章,与大家一讨论学习!
转载请说明出处!
相关文章推荐
- net5:动态修改内存中的站点地图节点
- vs2005入门视频教程 之 动态修改内存中站点地图 [视频]
- 动态修改内存中站点地图节点
- 揭开站点导航的面纱(一)
- 配置多个站点地图,为不同页面添加不同的站点导航
- Ida动态修改android程序的内存数据和寄存器数值,绕过so文件的判断语句
- 网站导航(站点地图)
- 工欲善其事,必先利其器 软件工具开发关键词 protractor自动化测试工具 RegexBuddy正则 CodeSmith,LightSwitch:代码生成 CheatEngine:玩游戏修改内存值必备神器 ApkIDE:Android反编译工具 Reflector:反编译dll动态链接库
- Axure RP Pro 6.5修改站点地图,只显示需要的节点
- 网站导航(自定义站点地图)
- 一个站点地图(导航)教程
- ASP.NET2.0站点地图搭建网站导航结构
- 简论程序是如何动态修改内存或指令的【转自看雪】
- vs2005入门视频教程 之 导航控件-站点地图和sitemappat [视频]
- 动态加载xml文件(站点地图)
- Cloudstack动态修改CPU、内存
- asp.net SiteMapPath 面包屑导航 web.config 配置多个站点地图
- 动态修改页面导航的问题!(sitemappath + web.sitemap)
- 动态修改页面导航的问题!(sitemappath + web.sitemap)
- Android4.2.2 动态显示隐藏屏幕底部的导航栏(对系统源码进行修改)