2014-10-06 97 views
2

我有一个绑定到远程分层数据源的Kendo treeview。问题是,当我尝试通过执行$('#treeview').getKendoTreeView.dataSource.read()来获取更新后的值时,数据成功更新后,所有展开的节点都将恢复到其初始状态。读取kendoUI treeview数据源并保持树状态

有什么办法可以告诉树保持它的状态吗?现在,我解析所有节点状态,并在绑定后以编程方式重新应用它们,如果它们仍然存在。似乎应该有更好的方法来做到这一点。 (即建立这样做)

回答

1

有没有办法做到这一点。我已经通过让模型存储节点是否展开,然后在离开页面之前重置所有值来实现此目的。

这是有道理的,就好像你重新加载数据源的节点位置可能已经改变一样,因为树视图试图将新数据源与旧数据源匹配将是不合理的。

虽然我希望你幸运。

就我个人而言,我只是在本地编辑treeview的数据源,所以我不必处理这个问题。它涉及很多黑客树视图,但它的作品。对于将来的读者,如果你调用append,insert before和insert after之后,这也会影响treeview数据源。在treeview节点上调用remove不会。为了做一个删除你必须在树视图数据源,这也将更新树视图。奇怪的是,他们这样做,我认为这是因为他们希望你能够从树视图中删除一个节点,然后取消你的删除或什么?

无论如何,使用这4种方法,您几乎可以在本地执行任何您想要的树视图,而无需重新绘制或重新加载数据源。