zTree如何在异步刷新之后选择刷新之前选择的节点

我本悟静 发布于 2014/02/11 09:50
阅读 4K+
收藏 0

@zTree 你好,想跟你请教个问题:

最近有一个需求,是这样的:在zTree异步刷新整棵树之前,用户已经选择了某一个树节点(假设是A节点),zTree异步刷新整棵树之后,所有的树节点又变成最初的状态(没有扩展开子节点的状态),想咨询下如何在刷新后选中之前选中的节点A?

如下方案是不是一个解决方案:异步刷新之前记录之前选中的树节点

getSelectedNodes();
,刷新之后通过 getNodesByParam 可以根据属性查找你需要的节点,然后通过
selectNode(nodes[0]);
方式去选中?


期待您的答复 万分感谢

加载中
0
zTree
zTree

1、看一下 异步加载模式下 全部展开的 demo,学会如何用代码控制逐层展开。

2、异步刷新之前把已经展开的父节点id 逐级全部保存下来,刷新后,根据保存的数据逐级展开

3、一部刷新之前把已选中的节点id 保存下来, 等第2步执行完毕后,利用 selectNode 选中即可。

总之,针对异步加载的情况 刷新整棵树又要保持原装肯定会相对麻烦一些。。。不知道你的需求中为何一定要刷新整棵树呢?如果只是修改数据,是否可以考虑利用增量处理,必须删除、新增、修改对应的节点就是了?具体情况还要根据你的需求而定

我本悟静
我本悟静
非常感谢指导,主要需求中树节点和叶子节点都会被更改,所以就采取了刷新整棵树的操作。 再次感谢!
0
l
luckysleep
我想到缓存
返回顶部
顶部