如何在TreeView kendo ui上获取所选节点的数据?

时间:2014-01-24 09:52:03

标签: events kendo-ui treeview

通过单击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中感谢。一个关于小提琴的示例演示将是一个很好的帮助..

1 个答案:

答案 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

                 }
}