技术开发 频道

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

  
【IT168 技术文档】如果您正在寻找一种快速实现站点地图(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文件作为数据源。

<%@ Master Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

<title>TechRepublic.com Test</title>

</head>

<body>

<form id="frmMasterPage" runat="server">

<div>

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

</asp:TreeView>

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

<asp:contentplaceholder id="ContentPlaceHolder1" runat="server">

</asp:contentplaceholder>

</div></form></body></html>


   树形控件提供了大量的选项用于定制控件的外观和行为,这包括了根节点、父节点和叶节点的样式,以及选定的节点属性或者CSS,以下是这些选项的说明:

l NodeIndent: 允许您设定子节点的缩进量。

l NodeWrap: 指定子节点的文字在显示空间不够的情况下是否换行到下一行或继续在本行显示。

l CollapseImageUrl: 指定一个自定义的图像到选定折叠的节点。

l ExpandImageUrl: 指定一个自定义的图像到选定展开的节点。

l ShowExpandCollapse: 设定展开/折叠选项是否显示,这是一个布尔值。

l ShowLines: 设定指向子节点的线是否显示,这是一个布尔值。

树形控件的元素本身提供了很多样式,以下是树形控件支持的元素:

l NodeStyle: 设定所有节点的样式。

l RootNodeStyle: 设定根节点的样式。

l HoverNodeStyle: 设定鼠标移动到节点时的样式。

l LeafNodeStyle: 设定叶节点的样式。

l LevelStyles:设定单独的叶节点的样式。

l ParentNodeStyle: 设定父节点的样式。

l SelectedNodeStyle: 设定当前节点的样式。

以下的例子使用了这些元素,以及树形控件的属性来设定外观:
<asp:TreeView NodeIndent="25" NodeWrap="true" ShowLines="true"" ID="TreeView1" runat="server" DataSourceID="SiteMapDataSource1">

<NodeStyle ForeColor="red" />

<RootNodeStyle ForeColor="black" />

<HoverNodeStyle BackColor="yellow" />

</asp:TreeView>














 

 

您可能需要使用静态内容作为树形控件的数据源,这样绕过了后端数据源将树形控件直接放置在页面上,比如站点地图。以下的代码展示了树形控件的设置方法:

<asp:TreeView NodeWrap="true" ShowLines="true" ID="TreeView1" runat="server"> 

<Nodes>

<asp:TreeNode NavigateUrl="~/Default.aspx" Text="Default page">

<asp:TreeNode NavigateUrl="~/Test1.aspx" Text="Test page 1" />

<asp:TreeNode NavigateUrl="~/Test2.aspx" Text="Test page 2">

<asp:TreeNode NavigateUrl="~/Test3.aspx" Text="Test page 1" />

</asp:TreeNode>

</asp:TreeNode>

</Nodes>

<NodeStyle ForeColor="red" />

<RootNodeStyle ForeColor="black" />

<HoverNodeStyle BackColor="yellow" />

</asp:TreeView>

   通过程序代码对树形控件进行控制也是可行的,但是这已经超出了本文的范围,而且,树形控件也并不仅仅限于浏览站点结构,您也可以使用其他的数据源。

下一步

   树形控件允许您展示网站的层次结构,还可以通过点选节点来浏览站点,将站点地图和SiteMapDataSource控件进行绑定。树形控件的展示方法提供了一种简单的方法来定制控件,在今后的文章中,我将继续讲解通过菜单控件来浏览网站结构的方法。



0
相关文章