【发布时间】:2013-06-28 21:26:26
【问题描述】:
我的树视图有以下代码。一切都好。我可以使用我的树:展开、折叠、拖动项目。但是当我为任何节点调用“选择”事件时,我得到一个错误:
Uncaught TypeError: Cannot call method 'dataItem' of undefined"
上线
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");
【问题讨论】:
-
我不熟悉有问题的树控件,但
$("#treeview").data("kendoTreeView")是null- 所以在你的 javascript 调试器(Firebug/Chrome 开发工具/等)中的该行上放置一个断点并检查$("#treeview").data看看里面有什么?