0 Comments

利用站点地图和SiteMapPath控件实现网站导航

发布于:2012-11-23  |   作者:广州网站建设  |   已聚集:人围观
利用站点地图和SiteMapPath控件实现网站导航默认情况下,应将站点地图文件命名为Web.sitemap。这样控件就可以自动找到正确的文件。对于更高级的情况,可以有多个不同名称的站点地图,在向系统提供这些附加文件的web.config中有一个配置设置。在大多数情况下,一个站点地图文件就够了。站点地图文件的框架结构如下所示:
广州网站建设
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  3.     <siteMapNode url="" title=""  description="">
  4.         <siteMapNode url="" title=""  description="" />
  5.         <siteMapNode url="" title=""  description="" />
  6.     </siteMapNode>
  7. </siteMap>
上述代码的根节点是siteMap,其下使用siteMapNode 节点建立层次结构,每个siteMapNode可以有多个子节点,可以用来创建一个既有广度又有深度的站点结构。注意站点地图仅包含一个根节点。每个siteMapNode元素有3个属性集:url、title和description。其含义如表7-2所示。
表7-2  siteMapNode 标记的属性及说明
属    性 属 性 描 述
Title 显示页面的名称
url 选项连接的 URL 网址,此网址在网站地图中是唯一的
description 作为出现在浏览器中的元素的工具提示,可有可无
 
url属性应指向Web站点中的有效页面。可以用~语法来引用基于应用程序根文件夹的URL。虽然ASP.NET运行库不允许指定同一个URL超过一次,但是可以通过添加一个查询字符串使URL唯一来绕过这一问题。例如,~/Login.aspx和~/Login.aspx?type=Admin会被看作两个不同的页面。
为了能够使用Web.sitemap文件,ASP.NET利用了SiteMapDataSource控件,它在Toolbox的Data类别下面。当使用SiteMapPath控件显示网站路径图时,ASP.NET会找到Web.sitemap文件本身。使用Menu、TreeView导航控件时,需要显式地指定一个SiteMapDataSource作为Web.sitemap文件的中间层。
要创建一个有用的Web.sitemap文件,需要向站点中添加一个文件,然后手工向它添加必需的siteMapNode元素。目前,Visual Web Developer 2008没有自动基于当前站点的结构创建站点地图文件的方式。
SiteMapPath 网站路径控件可以显示目前执行 ASP.NET 程序文件所在的网站路径。例如,首页 > 网页设计 > ASP .NET 3.5。SiteMapPath控件有50个公有属性,可以通过【属性】窗口来设置这些属性。SiteMapPath控件的常用属性如表7-3所示。
表7-3  SiteMapPath控件的常用属性
属    性 属 性 描 述
 PathSeparatorStyle 路径分隔字符串的样式
 NodeStyle 路径节点的样式
 CurrentNodeStyle 目前路径节点的样式
 ParentLevelsDisplayed 父路径显示几层的节点
 RenderCurrentNodeAsLink 目前节点是否成为超级链接,默认值
 False 为不是,True 为是
 SiteMapProvider 使用的网站地图提供者
PathDirection 支持两个值:RootToCurrent和CurrentToRoot。
第一个设置显示左边的根元素、正中的中
间级,以及路径右边的当前页面。CurrentToRoot
设置则完全相反,当前页面显示在面包屑路径左边
PathSeparator 定义路径的不同元素之间要显示的符号或文本。
默认是大于号(>),不过可以将它改为别的符号,
如竖线(|)
RenderCurrentNodeAsLink 确定将路径的最后一个元素(当前页面)呈现为
文本链接还是纯文本。默认为False,这通常没
有问题,因为已经在元素代表的页面上,所以
并不真正需要链接
ShowToolTips 确定当用户将鼠标悬停在路径中的元素上时是
否显示工具提示(从Web.sitemap文件中的
siteMapNode元素的描述属性中检索)
 
【例7-6】演示在VWD 2008中创建站点地图的方法,然后利用SiteMapPath控件实现自动导航。
(1) 新建一个Web站点Ex7_6。
(2) 执行【文件】|【新建文件】命令,打开【新建文件】对话框。选择【站点地图】,选择默认文件名,单击【添加】按钮即可创建一个网站地图文件web.sitemap。创建的web.sitemap文件的内容如下:
广州网站建设
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <siteMap xmlns="http://schemas.microsoft.com/ AspNet/SiteMap-File-1.0" >
  3.     <siteMapNode url="~/Default.aspx" title= "主页"  description="默认文档">
  4.         <siteMapNode url="~/Computer.aspx"  title="计算机类"  description="  
  5. 单击此链接转到子计算机类图书页面" >
  6.             <siteMapNode url="~/Hard.aspx"  title="硬件类"  description="单击  
  7. 此链接转到子硬件类图书页面" />
  8.             <siteMapNode url="~/Soft.aspx"  title="编程类"  description="单击  
  9. 此链接转到子编程类图书页面" />
  10.         </siteMapNode>
  11.         <siteMapNode url="~/Wenxue.aspx"  title="文学类"  description="单击此  
  12. 链接转到文学类图书页面" >
  13.         </siteMapNode>
  14.     </siteMapNode>
  15. </siteMap>
(3) 在【解决方案资源管理器】中,分别添加Web窗体页Computer.aspx 、Hard.aspx、Soft.aspx、Wenxue.aspx。并分别在它们的【源】视图中添加一个SiteMapPath控件。注意观察设计窗口的变化。
(4) 在Hard.aspx中,切换到【源】视图,修改SiteMapPath控件的属性如下所示:
广州网站设计
  1. <asp:SiteMapPath ID="SiteMapPath1" runat="server"
  2.      PathSeparator="/"
  3.      PathSeparatorStyle-Font-Size="10pt"
  4.      NodeStyle-Font-Size="10pt"
  5.      NodeStyle-ForeColor="maroon"
  6.      CurrentNodeStyle-Font-Underline="False"
  7.      CurrentNodeStyle-ForeColor="red">
  8. iteMapPath>
(5) 切换到Default.aspx中,按Ctrl+F5键,在浏览器中执行程序,查看执行结果。广州网站设计
飞机