KenDoTreeview刷新后展开的节点和选中的节点不变(KenDoTreeview中的数据通过KenDoGrid来进行保存、删除)
来源:互联网 发布:淘宝买家一颗心 编辑:程序博客网 时间:2024/06/16 08:25
首先说明一下,KenDoTreeview只负责显示树,新增、修改、保存、删除数据均在KenDoGrid中进行,(如果是在KenDoTreeview中进行新增、修改、保存、删除操作的话,不需要这么复杂,KenDoTreeview本身就会保持展开选中节点不变),每次对KenDoGrid中的数据进行操作后要对KenDoTreeview进行更新数据,本身是不会保持刷新前的节点展开选中的状态,一般情况下都会要求树的展开选中状态不变。
js部分:先定义一个变量数组A,KenDoTreeview展开节点时触发expand事件,获得该节点的id(是唯一性标识即可)追加到数组A中;KenDoTreeview关闭节点时触发collapse事件,获得该节点的id(是唯一性标识即可)并在数组A中删除这个id。把该数组A传入后台。
Java部分:接收js传过来的数组A。查询好数据,通过for循环判断数组A中是否包含第i条数据中的id,如果是则设置expanded字段为true。刷新后展开的节点不变。
选中节点不变,可以只在js部分实现。首先定义一个变量b,KenDoTreeview在每次选中节点时触发select事件,获取该节点的id。刷新KenDoTreeview后,在transport的read()中,通过id获取该条数据的uid,根据uid选中该节点。
下面只显示部分代码
js部分:
<div id="treeview"></div><script>var nodeValues,parantOrgId;function initTreeView () {$("#treeView").kendoTreeView({template: "#=item.name# #=item.code#<input type='hidden' value='#=item.id#'/><input type='hidden' value='#=item.name#'/><input type='hidden' value='#=item.isManageGroup#'/>",dataSource: treeList,select: function (e) {parantOrgId = $(e.node).find("input:eq(0)").val();$("#gridOrg").data("kendoGrid").dataSource.read();expand: function(e){nodeValues.push($(e.node).find("input:eq(0)").val());},collapse: function(e){var value = $(e.node).find("input:eq(0)").val();var index = nodeValues.indexOf(value);nodeValues.splice(index,1);}});}var treeList = new kendo.data.HierarchicalDataSource({transport: {read: function (options) {var info = new EiInfo();info.set("nodeValues",nodeValues); (此处省略,这里是要跳转到后台Java中的).send("PublicOrganization", "queryTree", info, {onSuccess: function (info) {if (info.get("errorcode" === "-1")) {return;}var data = eval(info.get("treeJson"));options.success({data: data});if(parantOrgId!=-1){var treeview = $("#treeList").data("kendoTreeView");var barDataItem = treeview.dataSource.get(parantOrgId);if(barDataItem!=undefined){treeview.select(treeview.findByUid(barDataItem.uid));//选中节点不变}}},onFail: function (msg) {options.error(msg);}});},},schema: {data: function(d){return d.data;}, model: { id: "id", children: "items" } }});</script>
Java部分代码:
String nodeValues = info.getString("nodeValues");//获取数组if(nodeValues.indexOf(((Map)ds.get(i)).get("id").toString()) != -1){((Map)ds.get(i)).put("expanded", "true"); //展开节点不变}
0 0
- KenDoTreeview刷新后展开的节点和选中的节点不变(KenDoTreeview中的数据通过KenDoGrid来进行保存、删除)
- treeview 展开选中节点,收缩同级节点(可以改变展开和收缩的图标)
- SWT/Jface TreeViewer 如何刷新后,展开原来的节点
- 实现展开和折叠自如,节点全部选中的实现
- ztree刷新后依然保持之前的选中节点状态
- Ztree 指定ID节点的选中 和 指定ID节点的展开
- 链表中的添加节点和删除节点的操作
- extjs4.0 treepanel节点的选中、展开! 数据的重新加载! checked树
- ztree 初始化的时候展开已经选中的节点
- TreeView点击之后保持点击节点的方法 (展开后刷新仍保持展开状态的方法)
- WPF TreeView节点的展开和收缩
- TreeView中如何选中一个父节点同时选中所有的子节点和孙节点。。。
- TreeView的子节点和父节点级联选中
- TreeView的子节点和父节点级联选中
- EasyUI Tree 获取实心节点和选中的节点
- TreeView的子节点和父节点级联选中
- Flex的Tree全部展开收缩,ji展开选中单个节点
- Flex的Tree全部展开收缩,ji展开选中单个节点
- eclipse color theme插件安装
- 【OpenCV】图像网格转换mesh transform
- uboot移植-nandflash支持问题
- Java 简述匿名内部类的江湖
- jedis使用api
- KenDoTreeview刷新后展开的节点和选中的节点不变(KenDoTreeview中的数据通过KenDoGrid来进行保存、删除)
- NIO和AIO
- unity3d中XML文件报错原因的解决方案
- 如何区分上传的图片是不是木马?
- Unity(VR)视频播放器开发纪录(非教程)--知识点:
- Remove Duplicates from Sorted List
- Cordova集成笔记(for iOS)
- C++随机数产生器
- 回文数字