如果您正在寻找一种快速实现站点地图(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
当您使用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文件作为数据源。
发表回复