使用 ASP.NET TreeView 控件可以轻松地绑定到支持 IHierarchicalDataSource 接口的数据源,例如:XmlDataSource 类和 SiteMapDataSource 类。此外,您还可以完全控制将数据源的哪些字段用于 Text、Value 和其他 TreeNode 属性。
一、绑定到 XML 文件
TreeView 控件支持到 XML 文件的声明性绑定(通过使用 XmlDataSource 控件)。通过创建一个表示 XML 文件的 XmlDataSource 控件,然后将该 XmlDataSource 分配给 TreeView 控件,可以将 TreeView 控件绑定到该 XML 文件。而且,通过使用某些技术,可以对绑定到 TreeView 控件的数据的绑定方式和数据内容进行控制,包括以下技术:
如果数据源是 XML 文件,则请在将该 XML 文件绑定到该控件之前,通过执行 XML 转换改变数据。有关更多信息,请参见 XSLT 转换。
创建一个自定义 DataBindings 属性,来控制 XML 文件中的哪些属性将填充 TreeNode 属性,例如 Text 属性、Value 属性、NavigateUrl 属性,等等。有关更多信息,请参见自定义 TreeView Web 服务器控件的外观。
二、绑定到站点地图
TreeView 控件支持对站点地图文件的声明性绑定(通过使用 SiteMapDataSource 控件)。绑定到 SiteMapDataSource 控件的实例时,每个 SiteMapNode 的 Title 和 Url 属性自动与 TreeView 控件中的每个 TreeNode 对象的 Text 和 NavigateUrl 属性相关联,因此不必创建自定义数据绑定。
三、即需填充节点
即需填充功能允许您指定在最初呈现 TreeView 控件时不使用数据填充节点。相反,TreeNode 控件将在用户单击节点时请求子节点数据。当 TreeNode 控件的 PopulateOnDemand 属性被设置为 true 时,如果用户单击并展开该节点,则发生 TreeNodePopulate 事件。您可以创建一个事件处理程序,以在引发 TreeNodePopulate 事件时动态检索数据,这样就可以根据需要检索树数据。
四、非声明性数据绑定
除了使用 DataSourceControl 的派生类声明性地将数据绑定到 TreeView 控件,TreeView 控件还提供了 DataSource 属性和 DataBind 方法以用于数据绑定。