【发布时间】:2011-11-30 07:25:30
【问题描述】:
有很多方法可以将数据表转换为树视图(树节点),例如this。但是有没有办法创建一个维护层次结构的数据表。例如。如果TreeNode 是这样的
A-A1
-A2-A21
-A22
B-B1
-B2-B21
-B3-B31
-B32-B321
-B322
-B33
-B4
在数据表中应该如下所示。然后我可以将它保存在数据库中,或者在datagrid 中向用户显示。
所有列都可以有string 值。
有什么办法可以让我将treenode 传递给一个函数,它会动态地创建这样的数据表。 treenode 结构每次都会改变,这就是为什么我不能硬编码它。假设我有一个这样的递归函数。
public void CreateData(TreeNode trn)
{
foreach(TreeNode t in trn.Nodes)
{
CreateData(t);
}
}
我在理解递归函数的代码流方面遇到困难。 任何建议表示赞赏。
谢谢。
【问题讨论】:
-
你的意思是保存到DataTable还是DataBase?无论如何,这个数据表可能有什么结构。根据你的例子,这个数据表可能有一个列(类型字符串)或者这个表应该有多个(动态创建的)列(类型字符串)。请添加更多信息!
-
Hippo 通常在这些情况下,您有一个表,其中包含 ID、标题和 ParentID,并且每个非根节点都有指向表中其父节点记录的 parentID。我认为您应该这样做,而不是使用您在问题中定义的表格。还要考虑当您将树视图控件绑定到我提到的此类表结构时,它们能够以这种方式精确填充。
-
编辑问题,看看。
-
编辑后:您的出发点仍不清楚。你的数据来源是什么?您是否已经在某处存储了分层数据并且只想动态创建
System.Data.DataTable?但是,“将其保存在数据库中”是什么意思?
标签: c# winforms datatable treenode