标签:function treeview dataItem Kendo 节点 UI nodes TreeView id
获取节点数据
您可以在select
事件处理程序中获取TreeView节点数据。
function onSelect(e) { // This refers to the TreeView object. var dataItem = this.dataItem(e.node); console.log("Selected node with id=" + dataItem.id); } $("#treeview").kendoTreeView({ dataSource: [ { id: 1, text: "Item 1", items: [ { id: 3, text: "Item 3" } ] }, { id: 2, text: "Item 2" } ], select: onSelect });
节点展开时重新加载子节点
由于dataItem
是的Node
类型,因此可以使用其loaded
标志来强制从服务器重新加载节点。该Node.loaded
方法设置loaded
节点的标志并指示它需要刷新。
function onExpand(e) { var dataItem = this.dataItem(e.node); dataItem.loaded(false); } $("#treeview").kendoTreeView({ dataSource: remoteDataSource, expand: onExpand });
从TreeView收集检查的节点
以下示例演示如何从Kendo UI TreeView收集选中的节点。您也可以使用这种方法来收集扩展的节点。
var treeview = $("#treeview").data("kendoTreeView"); var checkedNodes = []; function gatherStates(nodes) { for (var i = 0; i < nodes.length; i++) { if (nodes[i].checked) { checkedNodes.push(nodes[i].id); } if (nodes[i].hasChildren) { gatherStates(nodes[i].children.view()); } } } gatherStates(treeview.dataSource.view());
投影TreeView状态
在HierarchicalDataSource
不支持数据投影。因此,您可能需要使用schema.parse
配置选项来重新映射状态字段。
<div id="tree"> <script> $("#tree").kendoTreeView({ dataSource: { transport: { read: function (options) { setTimeout(function() { options.success([ { hasChildren: false, text: "Node 1", Downloaded: false }, { hasChildren: true, text: "Node 2", Downloaded: true, items: [ { hasChildren: false, text: "Node 2.1", Downloaded: false }, ] } ]); }, 1000); } }, schema: { parse: function(response) { return $.map(response, function(x) { x.expanded = x.Downloaded; return x; }); }, model: { id: "id", hasChildren: "hasChildren", children: "items" } } } }); </script>
详见:https://docs.telerik.com/kendo-ui/controls/navigation/treeview/common-scenarios#gathering-checked-nodes-from-the-treeview
标签:function,treeview,dataItem,Kendo,节点,UI,nodes,TreeView,id 来源: https://www.cnblogs.com/djd66/p/14721622.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。