通过单击treeview的节点,我需要检索由远程数据加载的treeview数据。
var homogeneous = new kendo.data.HierarchicalDataSource({
transport: {
read: {
url: '<c:url value="/welcome/list/"/>',
dataType: "json"
}
},
schema: {
model: {
hasChildren: "hasFiles",
children: "items"
}
}
});
var tv= $("#treeview").kendoTreeView({
dataSource: homogeneous,
dataTextField: "Name",
change:function(e){
// Need to retrive the "hasFiles" data on clicking the respective selected nodes of treeview
}
}
我的远程数据的JSON格式将是这样的。
[{ “ID”: “1”, “名称”: “five.txt”, “hasFiles”:假, “项目”:[]},{ “ID”: “2”, “名称”: “一”, “hasFiles”:真正的 “项目”:[{ “ID”: “3”, “姓名”: “四有”, “hasFiles”:真正的 “项目”:[{ “ID”:“4 ”, “姓名”: “four.txt”, “hasFiles”:假的, “项目”:[]}]}]} ];
我尝试使用select和change事件完成,它只使用本地数据但不使用远程数据。 select事件给出undefined而改变事件甚至没有被调用。传递更改事件在jsbin中工作但在jsfiddle和我的app中不起作用。我在运行应用程序时没有发现任何错误。 在Advance中感谢。一个关于小提琴的示例演示将是一个很好的帮助..
答案 0 :(得分:4)
您的TreeView实例化代码需要一个select事件,而select事件将把事件作为参数。然后,您将使用该事件对象来获取所需的树视图数据。
var tv= $("#treeview").kendoTreeView({
// other configuration code removed for brevity
select: function (e) {
e.preventDefault();
var tree = $('#treeview').data('kendoTreeView');
var dataItem = tree.dataItem(e.node);
// You will then have data item, and can use
// the properties for whatever you need to do
}
}