0

我正在使用绑定到远程数据http ://demos.kendoui.c​​om/web/treeview/remote-data.html 创建剑道 ui 树

如果我使用波纹管代码来扩展树,我是 kendo ui 的新手,它工作正常

var treeview = $("#treeview").data("kendoTreeView");
// expand all nodes
treeview.expand(".k-item");

当我尝试使用id它时,它给了我未定义的错误

代码是

var treeview = $("#treeview").data("kendoTreeView");
// expand the node with id=3
treeview.expand(document.getElementById("3"));
//treeview.dataSource.view();

这是我的jQuery代码

var serviceRoot = "search/treej.php";
homogeneous = new kendo.data.HierarchicalDataSource({
    transport: {
        read: {
            url: serviceRoot,
            dataType: "jsonp"
        }
    },
    schema: {
        model: {
            id: "id",
            hasChildren: "child"
        }
    }
});

$("#treeview").kendoTreeView({
    checkboxes: {
        checkChildren: false,    
    },
    dataSource: homogeneous,
    dataTextField: "value"
});

// my function to expand node using id it is called on my button click
function expand_me(){
    var treeview = $("#treeview").data("kendoTreeView");
    // expand the node with id=3
    treeview.expand(document.getElementById("3"));
}

我对此不太了解,但 js fiddle 无法扩展(因为我正在使用数据库)所以我创建了崩溃的演示代码http://jsfiddle.net/mitesh_inf/S3H6U/

有朋友能告诉我我哪里做错了吗??

4

1 回答 1

1

您的 jsFiddle 示例没有 id 为 3 的元素。document.getElementById("3")返回null

如果您从 Kendo 数据源中知道要折叠的项目的 uid,则可以使用 jQuery 选择器查找具有匹配data-uid属性的项目:

$("#treeview")
    .data("kendoTreeView")
    .collapse('.k-item[data-uid="a7e9f5fd-4c11-4e0f-bb16-ae335c70c73f"]');

或者,如果您指的是树中的第三项:

$("#treeview")
    .data("kendoTreeView")
    .collapse($('.k-item').eq(2));
于 2013-06-09T00:50:47.090 回答