使用ASP.NET中的树形控件浏览网站数据

如果您正在寻找一种快速实现站点地图(Site Map)或者站点地图路径(SiteMapPath)的控件,那么您应该考虑树形控件(TreeView ,它提供了一种浏览Web程序的简单方法,我将从SiteMapDataSource控件开始讲解,您可以通过这个控件为树形控件提供数据。 

数据源

站点地图控件为ASP.NET浏览控件提供了数据源,而SiteMapDataSource可以实现站点浏览数据与网页之间的绑定,通过ID属性,您可以将SiteMapDataSource控件指定到浏览控件上(通过控件的DataSourceID属性)。 

SiteMapDataSource控件使用现有应用软件的站点地图文件,如果应用软件包含了多个站点地图文件,它将使用当前文件夹中的文件,以下是控件的格式和语法: 

<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />

SiteMapDataSource有很多属性可供设定,您可以利用它们来设定站点地图的外观和行为,这些属性包括: 

l       ShowStartingNode: 指定SiteMapDataSource控件是否将起始节点当作站点地图的根节点,此属性值是布尔值。

l       SiteMapProvider: 允许您使用web.sitemap文件作为来源的默认数据源以外的其他来源。

l       StartFromCurrentNode: 这个属性表明了当前节点是否是SiteMapDataSource的起始节点,此属性值是布尔值。

l       StartingNodeOffset: 设定当前节点开始的新节点的层级数量限制。

l       StartingNodeUrl: 允许您设定站点地图节点的URL作为浏览的起始点。 

当您使用SiteMapDataSource控件和这些属性的时候,它提供了应用软件的浏览功能,通过实例是非常容易掌握SiteMapDataSource控件的,因此我开始将注意力转移到ASP.NET浏览控件和SiteMapDataSource控件的配合使用上。(注意:SiteMapDataSource使用了树形控件和菜单控件而SiteMapPath控件并没有使用。)本文的示例使用了以下的站点地图: 

<?xml version="1.0" encoding="utf-8" ?>

 <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >

 <siteMapNode url="Default.aspx" title="Default Page"  description="Default page.">

 <siteMapNode url="Test1.aspx" title="Test page one"  description="Test page 1" />

 <siteMapNode url="Test2.aspx" title="Test page two"  description="Test page 2">

 <siteMapNode url="Test3.aspx" title="Test page three"  description="Test page 3" />

 </siteMapNode>

 </siteMapNode>

 </siteMap>

树形控件

树形控件提供了用树形展示站点结构的功能 (MSDN提供了一个使用树形控件的很好的例子)。通过鼠标的点击,节点是可以折叠或展开的,这样可以很方便地展示这个站点的逻辑结构,树形控件中的元素被成为节点,您可以向树形控件中添加以下三种类型的节点:

l      根节点(Root: 这是树的根节点,它没有父节点,但是它拥有多个子节点;

l       父节点(Parent: 拥有一个父节点和一个或多个
子节点的节点;

l       叶节点(Leaf:一个没有子节点的节点。 

基本的树形控件使用以下的语法:

<asp:TreeView ID="TreeView1" runat="server" DataSourceID="SiteMapDataSource1">

 </asp:TreeView>

您可以使用静态项目或者动态数据作为树形控件的数据源。

DataSourceID属性用来指定作为数据源SiteMapDataSource控件的名称。以下的例子在Master页面使用了树形控件,因此在每个使用了Master页面的网页上都可以看到这个树形控件,这个例子中的SiteMapDataSource控件使用了默认的web.sitemap文件作为数据源。