我有一个绑定(bind)到远程分层数据源的 Kendo Treeview 。问题是当我尝试通过执行 $('#treeview').getKendoTreeView.dataSource.read()
来获取更新的值时,当数据成功更新时,任何扩展的节点都会被设置回它们的初始状态。
有没有办法告诉树保持它的状态?现在我正在解析所有节点状态,并在绑定(bind)后以编程方式重新应用它们(如果它们仍然存在)。似乎应该有更好的方法来做到这一点。 (即内置的方式来做到这一点)
最佳答案
没有办法做到这一点。我已经看到通过让模型存储节点是否扩展,然后在离开页面之前重置所有值来完成此操作。
这是有道理的,就好像您重新加载节点位置可能已更改的数据源一样, Treeview 尝试将新数据源与旧数据源匹配是不合理的。
不过我还是祝你好运。
就个人而言,我只是在本地编辑 Treeview 的数据源,所以我不必处理这个问题。它涉及大量修改 Treeview ,但它有效。
对于 future 的读者,如果您调用 append、insert before 和 insert after,这也会影响 treeview 数据源。在 Treeview 节点上调用 remove 不会。为了进行删除,您必须在 Treeview 数据源上进行,这也将更新 Treeview 。他们这样做很奇怪,我认为这是因为他们希望您能够从 Treeview 中删除一个节点,然后取消您的删除或其他什么?
无论如何,通过这 4 种方法,您几乎可以在本地使用 Treeview 执行任何您想做的事情,而无需重新绘制或重新加载数据源。
关于kendo-ui - 读取 kendoUI Treeview 数据源并保持树状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26222943/