在asp.net treeview控件中绑定数据?

时间:2012-03-05 12:46:33

标签: c# asp.net sql-server-2008 treeview

我需要像

这样的树视图结构
Accounts-->Kmart-->California-->Stockton CA 95207
                             -->Oakdale, CA 95361   

来自此表

SCID    SCEID   SCElement   ParentID    Parent      SalesChannelName
67      27      Account     0           Root        Kmart
71      28      State       67          KMart       California
72      29      Store       71          California  Stockton CA 95207
74      29      Store       71          California  Oakdale, CA 95361

我尝试了此链接中的示例http://aspalliance.com/732。它工作正常。但我不知道如何(写一个查询)从该表中的示例代码形成一个树结构。任何建议?

2 个答案:

答案 0 :(得分:1)

为了将数据“绑定”到树视图,它必须采用正确的格式才能进行树视图的摘要。也就是说,它必须应用IHierarchicalDataSource 接口,例如格式化的XML文档等。

不幸的是,当您从数据库中获取数据时,它不会采用分层格式,只留下两个选项......

  1. 在绑定到treeview之前将数据转换为XMLDataSource并格式化/组织数据
  2. 就像在示例中一样,将数据加载到DataTable中并使用递归函数手动添加节点。我想如果你正在寻找封装,你可以从现有的树视图继承一个新的控件并相应地添加方法。
  3. HTH

答案 1 :(得分:1)

使用不同的表名填充表中的数据两次。

前:

da.Fill(ds,"Table1");
da.Fill(ds,"Table2");

现在使用Table1中的ID和Table2中的ParentId在数据集中添加数据关系

现在绑定到树视图

以下链接可以为您提供帮助。

http://joshsmithonwpf.wordpress.com/2007/05/05/binding-a-treeview-to-a-dataset/

这使用DB中的两个表。但是,您可以在SQL查询中使用相同的表两次进行小的更改