返回首页
当前位置: 主页 > asp.net专栏 >

ASP.NET - TreeView Web 服务器控件概述

时间:2010-06-01 14:33来源:未知 作者:admin 点击:
TreeView Web 服务器控件用于以树形结构显示分层数据,如目录或文件目录。 一、TreeView 控件支持下面的功能: 自动数据绑定,该功能允许将控件的节点绑定到分层数据(如 XML 文档)。

TreeView Web 服务器控件用于以树形结构显示分层数据,如目录或文件目录。

 

一、TreeView 控件支持下面的功能:

·自动数据绑定,该功能允许将控件的节点绑定到分层数据(如 XML 文档)。

·通过与 SiteMapDataSource 控件集成提供对站点导航的支持。

·可以显示为可选择文本或超链接的节点文本。

·可通过主题、用户定义的图像和样式自定义外观。

·通过编程访问 TreeView 对象模型,使您可以动态地创建树,填充节点以及设置属性等。

·通过客户端到服务器的回调填充节点(在受支持的浏览器中)。

·能够在每个节点旁边显示复选框。

 

二、背景

      TreeView 控件可以显示几种不同类型的数据:在控件中以声明方式指定的静态数据、绑定到控件的数据、或作为对用户操作的响应通过执行代码添加到 TreeView 控件中的数据。

2.1、显示静态数据

可以通过创建 TreeNode 元素集合,这些元素是 TreeView 控件的子级,在 TreeView 控件中显示静态数据。这些子元素也被称为子节点。

下面的示例演示用于 TreeView 控件的标记,该控件包含三个节点,其中两个节点具有子节点。

<asp:TreeView ID="MyTreeView" Runat="server">

  <Nodes>

    <asp:TreeNode Value="Child1" Expanded="True" Text="1">

      <asp:TreeNode Value="Grandchild1" Text="A" />

      <asp:TreeNode Value="Grandchild2" Text="B" />

    </asp:TreeNode>

    <asp:TreeNode Value="Child2" Text="2" />

    <asp:TreeNode Value="Child3" Expanded="True" Text="3">

      <asp:TreeNode Value="Grandchild1" Text="A" />

    </asp:TreeNode>

  </Nodes>

</asp:TreeView>

 

2.2、将数据绑定到 TreeView 控件

可以将 TreeView 控件绑定到支持 IHierarchicalDataSource 接口的数据源,例如 XmlDataSource 和 SiteMapDataSource 控件。此外,在绑定数据时,还可以完全控制要从数据源填充哪些字段。

 

2.3、使用 TreeNodeCollection 以编程方式显示数据

通过访问 Nodes 属性(该属性将返回 TreeNodeCollection 类),可以通过编程向 TreeView 控件填充数据。TreeNodeCollection 是 TreeNode 对象的强类型集合。TreeNode 对象含有一个名为 ChildNodes的属性。由于该属性可进一步包含 TreeNode 对象,所以 TreeNodeCollection 类是一个表示 TreeView 控件的所有节点的分层数据结构。

 

2.4、TreeView 节点类型

TreeView 控件由一个或多个节点构成。树中的每个项都被称为一个节点,由 TreeNode 对象表示。下表描述了三种不同的节点类型。

节点类型
说明

根节点
没有父节点、但具有一个或多个子节点的节点。

父节点
具有一个父节点,并且有一个或多个子节点的节点。

叶节点
没有子节点的节点。


      尽管一个典型的树结构只有一个根节点,但 TreeView 控件允许您向树结构中添加多个根节点。当您要显示项目列表,但不显示单个主根节点时(例如在产品类别列表中),这一功能很有用。

每个节点都具有一个 Text 属性和一个 Value 属性。Text 属性的值显示在 TreeView 控件中,而 Value 属性则用于存储有关该节点的任何附加数据(例如传递给与节点相关联的回发事件的数据)。

单击 TreeView 控件的节点时,将引发选择事件(通过回发)或导航至其他页。未设置 NavigateUrl 属性时,单击节点将引发 SelectedNodeChanged 事件,您可以处理该事件,从而提供自定义的功能。每个节点还都具有 SelectAction 属性,该属性可用于确定单击节点时发生的特定操作,例如展开节点或折叠节点。若要在单击节点时不引发选择事件而导航至其他页,可将节点的 NavigateUrl 属性设置为除空字符串 ("") 之外的值。

 

2.5、即需填充 TreeNode 数据

静态定义数据结构有时是不可行的,或者数据可能会依赖运行时收集的信息。为了动态显示数据,TreeView 控件支持动态节点填充。将 TreeView 控件配置为即需填充时,该控件将在用户展开节点时引发事件。事件处理程序检索相应数据,然后填充到用户单击的节点。若要以数据即需填充 TreeNode 对象,请将节点的 PopulateOnDemand 属性设置为 true,并创建 TreeNodePopulate 事件处理程序以向 TreeNode 对象中填充数据。

 

2.6、客户端 TreeView 节点填充

任何在浏览器功能配置文件中将 SupportsCallback 属性设置为 true 的浏览器都支持客户端节点填充。

借助客户端节点填充,TreeView 控件可以通过从客户端脚本中调用服务器的 TreeNodePopulate 事件来填充节点,而无需完全回发至服务器。

 

2.7、启用客户端脚本

默认情况下,在高级 (Up-level) 浏览器中,TreeView 控件上的节点的展开 - 折叠功能是使用客户端脚本执行的。由于控件不需要回发至服务器来呈现新配置,所以使用客户端脚本可以提高呈现的效率。

说明: 如果浏览器中的客户端脚本被禁用或浏览器不支持客户端脚本,则 TreeView 控件将恢复到低级(Down-level)模式并在每次用户单击节点时回发到服务器。

(责任编辑:admin)

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名:密码: 验证码:点击我更换图片
推荐赞助商
推荐内容