我的树视图有以下代码。一切都好。我可以使用我的树:展开,折叠,拖动项目。但是,当我为任何节点调用'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");
答案 0 :(得分:1)
将select
处理程序定义为:
select : function (e) {
var data = this.dataItem(e.node);
console.log(data.id);
}
由于this
处理程序的上下文中的select
是tree
。
此处示例http://jsfiddle.net/OnaBai/MLdeH/
注意:尝试删除name: "Admin Menu",
它也会有用!!!