TreeView 移动节点的问题
环境:XPSP2 + C#.net 2005 + ACCESS
问题:
在将ACCESS中的数据中有两种内容,其一是枝(可包含子节点)和叶(不可包含子节点),载入 TreeView 时,为了避免进行递归操作,用了如下过程:
因为树状目录是动态的,如果一开始就移动到正确的位置,可能这个时候它的父节点还没有建立,将报错。因此先将所有的枝数据载入到根,然后将其移动到正确的位置。在移动到正确位置的过程中,如果先将某个枝节点的内容装完,然后再将其移动到它的父节点,则返回正确的状态。但是如果将某个已经移动到正确位置的节点定义到 TreeNode 对像,则只能返回 null, 并且无法将其子节点移入。但是与此同时,点击该节点,却能够返回正确的Name 或 Text 值,这是为什么?
这个流程在VB6里已经实现过,但是在为了学习 C# 而重写该代码时去遭遇上述错误,请问是为什么呀?给个思路也行。
因为这个流程没有通过,所以后续的加入内容的流程就没有继续做。
------解决方案--------------------因为节点可以拖来拖去,所以并不能保证依靠节点载入的顺序(尽管可以排序)都是从父到子.
方案一
1.先载入根节点
2.当某节点展开的时候载入其子节点(可以包括子节点的子节点)
我就是这么实现的
方案二
1.载入所有节点到一个DataTable中
2.插入根节点
3.对于当前每一个节点,到DataTable中使用xpath查询其子节点执行插入
这么做可以用递归实现
------解决方案--------------------你的流程,即便在VB6中没有问题了,必定也过于复杂,可读性很难保证