使用id展开kendo ui树节点

时间:2013-06-08 13:53:53

标签: jquery kendo-ui kendo-treeview

我正在使用绑定到远程数据http://demos.kendoui.com/web/treeview/remote-data.html

创建kendo 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小提琴不可能扩展(因为我使用的是数据库)所以我创建了崩溃的演示代码http://jsfiddle.net/mitesh_inf/S3H6U/

任何伙伴都可以告诉我,我在哪里做错了吗?

1 个答案:

答案 0 :(得分:1)

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

如果您知道要崩溃的项目的Kendo DataSource中的uid,则可以使用jQuery选择器查找具有匹配data-uid属性的项目:

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

或者,如果您的意思是树中的第3项:

$("#treeview")
    .data("kendoTreeView")
    .collapse($('.k-item').eq(2));