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 对象表示。下表描述了三种不同的节点类型。 节点类型 根节点 父节点 叶节点
每个节点都具有一个 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) |