jquery - 在 Kendo 分层数据源中搜索

标签 jquery kendo-ui hierarchical-data kendo-treeview kendo-datasource

我正在尝试在 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() 返回空子项(它应该不是空的)。为什么数据源的第 3 级是空的?即使 Treeview 完美地显示了 Hierarchical 数据源中包含的所有数据。我在这里错过了什么吗?

最佳答案

我必须在递归之前调用 load() 到 haystack,以便加载 haystack 的 child 。

function findTreeviewNodeById(haystack, needle) {
    var uid = null;

    for (var i = 0; i < haystack.length; i++) {
        haystack[i].load();
        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;
}

关于jquery - 在 Kendo 分层数据源中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24325261/

相关文章:

具有静态 JSONP 回调函数的 jQuery "parseerror"

javascript - Rails & Zurb Modal 在编辑时加载整个页面

javascript - 单击时隐藏按钮,计时器用完时显示按钮

javascript - 如何动态生成一个基本的kendoUI小部件?

mysql - 如何使用 mysql 循环编写 mysql 查询以按父子分组的订单列表?

多种类型的django-MPTT叶节点

python - 非唯一索引上的 Index._join_level 未实现

php - JavaScript 确认消息出错

javascript - 如何更新 k-ng-model(也就是像 ng-model 一样的双向绑定(bind))

javascript - Kendo Scheduler 不会获取数据源