ASP .网站点导航应用详解
导航实际上给访问者提供了一个地图类似的东西,让访问者更快地找到想要的东西。
在2.0中引入了一个很重要的概念,那就是站点地图网站地图这样一个可扩展置标语言文件,但是它后缀不是XML。
若要为站点创建一致的、容易管理的导航解决方案,可以使用ASP。网站点导航。asp.net站点导航提供下列功能:
在了解了一些基本知识后,我们来做一个简单的导航的例子。
1、首先创建一个掌握
超文本标记语言代码:
% @ Master Language=' c# ' AutoEventWireup=' true '代码在=' MP '之前。主人。cs“Inherits=”导航。MP“%!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN ' ' http://www .w3。org/TR/XHTML L1/DTD/XHTML L1-过渡。DTD ' html xmlns=' http://www .w3。org/1999/XHTML ' head runat=' server ' title/title ASP :内容占位符ID=' head ' runat=' server '/ASP 3360内容占位符/head正文表单ID=' height : 255 px ' tr TD style=' width : 500 px;背景-颜色' : #99ccff '您当前的位置在:asp3360项appath ID=' sitemappath 1 ' runat=' server ' Font-name=' Verdana ' Font-Size=' 0.8em '路径分隔符=' : ' CurrentNodeStyle fore color=' # 333333 '/NodeStyle Font-Bold=' True ' fore color=' # 990000 '/路径分隔符style Font-Bold=' True ' fore color=' True '背景-颜色: # ebebff '版权所有/TD/tr/table/div/form/body/html显示的效果:
2、建立如下导航结构(统一应用上面的主)
3、添加站点地图(名称不可以改)
Web.sitemap下的代码如下:
?可扩展标记语言版本='1.0 '编码='utf-8 '?siteMap xmlns=' http://架构。微软。com/AsPnet/SiteMap-File-1.0 ' SiteMapNode URL=' a . aspx ' title='首页描述=' 1 ' SiteMapNode URL=' b . aspx ' title='根目录B页描述=' 2 '/siteMapNode URL='默认值。默认页描述=' 3 '/SiteMapNode URL=' title=' one目录描述=' 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目录下的一次目录描述=' 7 ' SiteMapNode URL=' ~/one/once/a . aspx ' title=' one '目录下的一次目录下的描述=' 8 '/SiteMapNode URL=' ~/one/once/b . aspx ' title=' one '目录下的一次目录下的b ' description=' 9 '/SiteMapNode/SiteMapNode SiteMapNode URL=' title=' two目录描述=' 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='动态修改内存中描述='动态修改内存中的站点地图//siteMapNode /siteMap 4、在根目录下a.aspx,放一个treeView控件。新建数据源为我们建立的站点地图。
运行后,我们便可以看到效果如图所示:
接下来会讲动态修改内存中的站点地图,什么叫动态修改内存中的站点地图,到底是什么意思呢?
例如,列表中通常有很多文章,所以我们不能将它们放在站点地图中。况且文章ID、栏目号、商品分类或者商品ID都不是我们可以提前期待的,所以如果站点地图里没有人,就不能在外面展示。我们做什么呢这需要在内存中动态修改站点地图。如上所述,我们假设有一个文章管理系统,结构如下:首页-新闻-国际新闻(列表),那么我们可以假设国际新闻的页面是list.aspx,不同的栏目会有不同的id,那么地址结构假设如下:xxx.com-~/news/-list.aspx?Id=3page=12有了这样的结构,我们在处理新闻列表页面时,只能在站点地图中静态写入url='~/news/list.aspx '。所以如果别人浏览的时候出现了上面的结构,我们接下来就来处理一下。Web.sitemap:
?xml版本='1.0 '编码='utf-8 '?siteMap xmlns=' http://schemas . Microsoft.com/AspNet/siteMap-file-1.0 ' Sitemapnode URL=' a . aspx ' title=' home page ' description=' 1 ' Sitemapnode URL=' b . aspx ' title='根目录b页' description=' 2 '/Sitemapnode URL=' default . aspx ' title=' default page ' description=' 3 '/Sitemapnode URL=' title=' one directory ' description=' 4 ' Sitemapnode URL=' ~/one Sitemapnode URL=' title='一个目录下的一次目录' description=' 7 ' Sitemapnode URL=' ~/one/once/a . aspx ' title=' a ' description=' 8 '/Sitemapnode URL=' ~/one/once/b . aspx ' title=' b ' description=' 9 '/Sitemapnode/Sitemapnode Sitemapnode URL=' title='两个目录' description=' 10 ' Sitemapnode URL=' ~/Two/a . aspx ' title=' a ' description=' 11 ' 然后在演示页面sitemap.aspx中放一个SitemapPath控件,注意页面的背景代码,该代码将其renderCurrentNodeAsLink设置为true(表示当前节点是链接):
使用系统;使用系统。集合。通用;使用系统。Linq使用系统。Web使用系统。Web . UI使用系统。网络控件;命名空间导航{公共部分类站点地图: System。web . ui . Page { protected void Page _ Load(对象发送方,EventArgs e) {//首先我们在这里注册一个事件,也就是说这个事件是在访问CurrentNode属性时触发的。sitemapResolve=new sitemapresolveevenhandler(sitemap _ sitemapResolve);} sitemap node sitemap _ sitemap resolve(对象发送者,sitemap resolve eventargs e){//我们的自定义处理方法获取并创建当前节点的副本,并复制其上级节点sitemap node current node=sitemap . current node . clone(true);SiteMapNode TempNode=current node;int id=NID();int page=npage();//从以下方法获取if(id0){ temp node . URL=temp node . URL '变量?id=' id。ToString();} if (id0 page=0) { TempNode。Url=TempNode。URL“page=”页。ToString();} else if (page0) { TempNode。Url=TempNode。Url?page=' page。ToString();}返回TempNode}//随意设置一个数字。private int NID(){ return 3;} private int npage(){ return 12;}}}说明:上面的nid()和npage()是获取参数的两种方法,具体要看实践中的实际情况。运行,让我们看看这个链接的属性:
此时,我们可以简单地在内存中动态修改站点地图!站点导航在BS开发中非常常用,我们有必要深入掌握。接下来,我们会发相关文章和大家一起讨论学习!
版权声明:ASP .网站点导航应用详解是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。