ASP.NET SiteMapPath控件简化Web网站导航

2014 年 2 月 28 日3600

ASP.NET的网站地图Web服务器控件让你能够轻松地设置和定义一个Web应用程序的逻辑结构。它就是设计用来使用ASP.NET 2.0的Menu、SiteMapPath和TreeView等导航控件的。本文将叙述如何利用SiteMapPath控件实现用户友好的Web网站导航。

面包屑

ASP.NET 2.0的SiteMapPath控件会显示一个导航路径,以便用户能够知道他们当时在Web网站上所处的位置。事实上它提供了一个“你在这里”的功能。这种类型的导航元素常常被叫做面包屑(breadcrumb)。基本的表现是向用户显示当前页面所在的位置,并提供回到主页的链接。

下面是SiteMapPath控件的基本句法:

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

在默认状态下,SiteMapPath控件会显示根节点以及其他代表当前Web页面的节点。SiteMapPath控件还会显示网站地图的根节点与当前节点之间页面,形式是横向排列这些链接,每个链接之间用大于号(>)隔开。下面的例子显示了一个简单的网站地图,用户正位于逻辑结构的第三个页面处。

Home Page > Page One > Page Two

你可以通过很多可用的属性来控制SiteMapPath控件的表示以及单个的链接。下面的列表提供了这其中一部分属性:

PathSeparator:让你能够用其他的字符作为链接的分隔符,而不用默认的大于号(>)。

PathDirection:让你能够按照从左到右的顺序显示路径;也就是说,从当前结点开始,从该点向右移动(RootToCurrent),或者首先显示当前节点,向右显示到达根节点的路径(CurrentToRoot)。

RenderCurrentNodeAsLink:用来表示当前节点是否被作为一个链接显示出来。这是一个布尔值。

PathLevelsDisplayed:让你能够指定需要显示的结构的层数。

ShowToolTips:用来表示当鼠标移动到一个链接上时,是否显示工具提示信息。工具提示信息在网站地图文件的节点描述属性里定义。

SiteMapPath控件的一个比较有意思的地方是,它不像Menu和TreeView控件那样需要使用SiteMapDataSource控件。 SiteMapPath控件在默认状态下与网站地图文件绑定在一起(也就是说它被放在应用程序的根里)。

使用SiteMapPath

由于SiteMapPath控件提供了一个所处网站位置的直观视觉表示,所以你可以很容易就把这个控件放在主页面上从而应用到整个网站上。下面的主页面就用到了这个控件:

<%@ Master Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://http://www.zjjv.com///TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://http://www.zjjv.com///1999/xhtml" > <head runat="server"> <title>TechRepublic Test</title> </head> <body> <form runat="server"> <div> <asp:SiteMapPath runat="server" PathSeparator=">>" ParentLevelsDisplayed="1" PathDirection="CurrentToRoot" RenderCurrentNodeAsLink="false" RootNodeStyle-ForeColor="orange" ShowToolTips="true"> </asp:SiteMapPath> <asp:contentplaceholder runat="server"> </asp:contentplaceholder> </div></form></body></html>

这个控件实例会取代默认的分隔符,并按从左到右的顺序显示链接。此外,当前的节点或者页面不会显示为一个链接;根节点用橙色的文本来表示,而每个链点都会显示工具提示。应用程序里的任何页面都会提供这个面包屑——只要这个页面被包含在应用程序的网站地图文件的节点里。

如果页面没有作为一个节点在网站地图文件里定义,那么SiteMapPath控件就不会显示出来。这是合理的,因为SiteMapPath控件需要通过网站地图文件获取显示在面包屑里的导航顺序和链接。

下一页>>

0 0