具有远程数据源问题的Kendo Treeview

时间:2013-06-28 21:26:26

标签: jquery kendo-ui

我的树视图有以下代码。一切都好。我可以使用我的树:展开,折叠,拖动项目。但是,当我为任何节点调用'select'事件时,我收到错误:

  

未捕获的TypeError:无法调用未定义的方法'dataItem'“

就行了

var data = $("#treeview").data("kendoTreeView").dataItem(e.node);

任何想法如何解决?我怎样才能访问我的树的data("kendoTreeView")?我试图在endRequest数据源事件上得到它,但它不起作用。

var jsonUrl = "/admin/adminmenu/adminmenujson";
    adminMenu = new kendo.data.HierarchicalDataSource({
        transport: {
            read: {
                url: jsonUrl,
                dataType: "json"
            },
        schema: {
            model: {
                id: "id",
                children: "items"
            }
        }
    });

    var tree = $("#treeview").kendoTreeView({
        name: "Admin Menu",
        expanded: true,
        loadOnDemand: false,
        dragAndDrop: true,
        dataSource: kendo.observableHierarchy(adminMenu),
        template: "#= item.name #  <input type='hidden' class='data_id' value='#=item.id#'>",
        select: function(e) {
            var data = $("#treeview").data("kendoTreeView").dataItem(e.node);
            console.log(data.id);
        }
    }).data("kendoTreeView");

1 个答案:

答案 0 :(得分:1)

select处理程序定义为:

select      : function (e) {
    var data = this.dataItem(e.node);
    console.log(data.id);
}

由于this处理程序的上下文中的selecttree

此处示例http://jsfiddle.net/OnaBai/MLdeH/

注意:尝试删除name: "Admin Menu",它也会有用!!!