我正在尝试在 Kendo 分层数据源中搜索一个项目。需要获取该项目的 uid 并使 Kendo Treeview 上的该项目节点以编程方式被选中。
这是代码。请原谅我草率的算法。
function findTreeviewNodeById(haystack, needle) {
var uid = null;
for (var i = 0; i < haystack.length; i++) {
if (haystack[i].id == needle) {
uid = haystack[i];
}
else if (haystack[i].hasChildren) {
uid = findTreeviewNodeById(haystack[i].children.data(), needle);
}
if (uid != null)
break;
}
return uid;
}
上述代码仅适用于具有 2 级深度的分层数据源。如果我尝试在它达到第 3 级时为其提供更深层次的数据源,则此行 haystack[i].children.data() 返回空子项(它应该不为空)。为什么第三级数据源是空的?即使 Treeview 完美地显示了 Hierarchical 数据源中包含的所有数据。我在这里错过了什么吗?