具有远程数据源问题的Kendo Treeview
我的树视图有以下代码。 一切都好。 我可以使用我的树:展开,折叠,拖动项目。 但是当我为任何节点调用’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 # ", select: function(e) { var data = $("#treeview").data("kendoTreeView").dataItem(e.node); console.log(data.id); } }).data("kendoTreeView");
将select
handler定义为:
select : function (e) { var data = this.dataItem(e.node); console.log(data.id); }
因为在select
处理程序的上下文中是tree
。
这里的例子http://jsfiddle.net/OnaBai/MLdeH/
注意:尝试删除name: "Admin Menu",
它也将工作!