我正在使用 Teleriks Kendo-UI 和 MVC 为这样的 Treeview 构建 MVVM 模型......
var viewModel = kendo.observable({
isVisible: true,
items: kendo.observableHierarchy(@Html.Raw(Json.Encode(Model.items))),
....
一切都很好,但是我在页面上有一些接受模型“事件”的 signalR 客户端,所以我添加了......
addItem: function(parentId, item){
// how do query the hierarchy?
},
deleteItem: function(itemId) {
// again how do i query the hierarchy?
},
... 到上述模型,以便在从我的 signalR 代码调用时接受这些事件通知。
我遇到的问题是我有一个层次结构,但不知道如何在此上下文中获取数据项,其中该项目具有给定的 id,然后将给定的项目添加到其子项。
我假设这是正确的方法,但对吗?
我的理论是“x 发生在服务器上”,这导致“通知客户端”调用“添加项目”传递父 ID 和要添加到树中的项目。
通过添加到模型中,项目应该“只出现在树中”。
但是我如何在客户端递归查询项目集合及其子项,因为在这种情况下我没有 linq ?
最佳答案
我认为你只需要编写一个递归函数来遍历层次结构并检查你想要的对象。
这个问题很相似:Underscore.js findWhere nested objects
如果您喜欢在 .NET 中使用 Linq,您可能需要查看 Underscore.js 或 LowDash 以了解 JavaScript 中的类似功能。
关于c# - 如何查询 Kendo MVVM Treeview 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24532563/