treeview 清空 重建

dzyjl 2010-12-31 10:36:35
我在加载树的时候先执行清空 代码,因为原来已经存在一个树结构,我想删除了在重新建立。用了下面2种方式:
1 直接删除根节点
this.deleteitem(0)

2 循环删除
long tmp
tmp = this.FindItem(RootTreeItem!, 0)
do while tmp > 0
this.deleteitem(tmp)
tmp = this.FindItem(RootTreeItem!, 0)
loop

上面都可以删除节点,如果原树存在节点,但是我在插入root节点的时候,并没有插入到根节点,顺序乱了,感觉是树里面的句柄没有清空,怎么能删除树,同时清空句柄?
...全文
395 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
dzyjl 2010-12-31
  • 打赏
  • 举报
回复
我是在一个按钮的click事件里面做的,
大致是这样的

tv_1.deleteitem(0)

tree_item.data=
tree_item.label=
tv_1.insertitemlast(0,tree_item)
dzyjl 2010-12-31
  • 打赏
  • 举报
回复
用这个也要清空 句柄吗? this.deleteitem(0)
灰色轨迹 2010-12-31
  • 打赏
  • 举报
回复
删除完之后句柄变量重新清空一下就行了~
pcwe2002 2010-12-31
  • 打赏
  • 举报
回复
这样删除是可以的。把你插入的代码贴出来看下呢
jjoulejcc 2010-12-31
  • 打赏
  • 举报
回复
tv_1.insertitemlast(0,tree_item)应该不存在这样的问题,检查下你的SortType属性。
另外跟节点的句柄肯定有关系,如果是插入到根结点tv_1.insertitemlast(0,tree_item)这里的句柄使用0没有问题,但是如果你清空树后,又插入了新的节点,那么新节点的句柄就不像原来那样按照1,2,3...排列的了。tv_1.insertitemlast(0,tree_item)会返回节点的句柄值,你可以显示出来看看就明白了。如果你想在某个节点下添加子节点,最好是使用系统返回的句柄值,不要简单的使用节点的顺序作为句柄值。
dzyjl 2010-12-31
  • 打赏
  • 举报
回复
就是手工写 构造的节点,不是 从数据库 读的
dzyjl 2010-12-31
  • 打赏
  • 举报
回复
不是就是手工设置的,还没有检查
wag_enu 2010-12-31
  • 打赏
  • 举报
回复
是用什么方法绘的树?
用DS 检索出数据再处理的还是?
dzyjl 2010-12-31
  • 打赏
  • 举报
回复
按道理不应该是那个,我首先把原来那个树给删除了,不应该会出现 那情况的
dzyjl 2010-12-31
  • 打赏
  • 举报
回复
我是在db里面将顺序排好的,例如
01
0102
010103,
然后通过,data保存的是id,然后通过id查找,在插入
wag_enu 2010-12-31
  • 打赏
  • 举报
回复
顺序问题不是句柄引起的,
一是检查一下sorttype 属性,可以置于 unsorted!

然后是同父的子项的顺序就是插入的先后顺序。。。

如果你的树的结构和同级项目顺序很严谨的话,可以在DB 的相关表上建相关的记录先后顺序的字段。

1,079

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧