扩展和选择剑道树视图的第一个节点时出现问题

时间:2016-12-20 10:41:52

标签: kendo-ui kendo-asp.net-mvc hierarchical-data expand kendo-treeview

我有一个由分层数据源填充的剑道树视图。我想设置父节点选择并在加载树视图时展开。我写了以下扩展并选择这样做。但它没有用。可以有人提供任何解决方案吗?

    var treeData =  new kendo.data.HierarchicalDataSource({

    transport: {
        read: {
            url: NsMenuMaster.urls.getMenuTreeUrl,
            data: data,
            datatype: "json",
            type: "POST"
        }
    },
    schema: {
        model: {
            id: "MenuConfigUid",                  
            children: "Child"

        }
    }
});

$("#MenuTreelist").kendoTreeView({
    dataSource: treeData,
    dataTextField: ["MenuText"],
    dataValueField: ["MenuConfigUid"],
    height: 1000,
    template: kendo.template($("#treeview-template").html()),
    checkboxes: {
        template: "<input type='checkbox' name='StudentClassID' value='#= item.id #' />",
        checkChildren: true
    },
    select: NsMenuMaster.onSelect
});

 $("#MenuTreelist").getKendoTreeView().select(".k-first");
 $("#MenuTreelist").getKendoTreeView().expand(".k-first");

1 个答案:

答案 0 :(得分:3)

您拥有.select()和.expand()代码的地方位置错误。在您当前正在调用它们时,树中还没有任何节点,因为尚未填充远程dataSource。

在读取远程数据源并且.k-first节点存在之后,您必须将选择和扩展代码移动到

您可以通过绑定到TreeView的第一个dataBound事件来完成此操作,即:

$("#MenuTreelist").kendoTreeView({
    ....
});

var treeView = $("#MenuTreelist").getKendoTreeView();
treeView.one("dataBound", function () {
    treeView.select(".k-first");
    treeView.expand(".k-first");
});

示例:http://dojo.telerik.com/@Stephen/iYIBo