全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

zTree实现节点修改的实时刷新功能

一、应用场景

在实际应用中会遇到动态操作树各节点的需求,在增加树节点后如何实时动态刷新树就十分有必要了。

二、项目实践

比如要在test1234节点下新建子节点,首先要选中test1234节点,添加成功后,根据test1234结点的TID去后台请求对应子节点数据,实现动态刷新。删除节点类似。

三、代码实现

1、初始化时必须设置配置

<span style="font-size:14px;"> async:{ 
   enable:true, 
   url:"../admin/scriptManager/loadNodeByID.htm", 
   autoParam:["id"], 
   dataType:"json", 
  }, 
  view: { 
   selectedMulti: false 
  } 
 }</span> 

2、刷新方法 

/** 
  * 刷新当前节点 
  */ 
 function refreshNode() { 
  /*根据 treeId 获取 zTree 对象*/ 
  var zTree = $.fn.zTree.getZTreeObj("scriptTree"), 
  type = "refresh", 
  silent = false, 
  /*获取 zTree 当前被选中的节点数据集合*/ 
  nodes = zTree.getSelectedNodes(); 
  /*强行异步加载父节点的子节点。[setting.async.enable = true 时有效]*/ 
  zTree.reAsyncChildNodes(nodes[0], type, silent); 
 } 
 /** 
  * 刷新当前选择节点的父节点 
  */ 
 function refreshParentNode() { 
  var zTree = $.fn.zTree.getZTreeObj("scriptTree"), 
  type = "refresh", 
  silent = false, 
  nodes = zTree.getSelectedNodes(); 
  /*根据 zTree 的唯一标识 tId 快速获取节点 JSON 数据对象*/ 
  var parentNode = zTree.getNodeByTId(nodes[0].parentTId); 
  /*选中指定节点*/ 
  zTree.selectNode(parentNode); 
  zTree.reAsyncChildNodes(parentNode, type, silent); 
 } 

3、涉及的方法详解

1、$.fn.zTree.init(obj,zSetting,zNodes)zTree的初始化方法,创建zTree必须使用此方法

参数说明

obj JQuery Object用于展现zTree的DOM容器

zSetting   JSON zTree的配置数据,具体请参考 “setting 配置详解”中的各个属性详细说明

zNodes   Array(JSON)/JSON zTree的节点数据,具体请参考 “treeNode 节点数据详解”中的各个属性详细说明

返回值

zTree对象,提供操作zTree的各种方法,对于通过js操作zTree来说必须通过此对象

如果不需要自行设定全局变量保存,可以利用

2、zTreeObj.getSelectedNodes获取 zTree 当前被选中的节点数据集合

返回值

返回值 Array(JSON)当前被选中的节点数据集合

方法实例:

1. 获取当前被选中的节点数据集合

var treeObj = $.fn.zTree.getZTreeObj("tree");
var nodes = treeObj.getSelectedNodes();

3、zTreeObj.getNodeByTId根据 zTree 的唯一标识 tId 快速获取节点 JSON 数据对象

参数:tId   String 节点在 zTree 内的唯一标识 tId

返回值:返回值   JSON tId 对应的节点 JSON 数据对象如无结果,返回 null

方法实例:

1. 获取 tId = "tree_10" 的节点数据

var treeObj = $.fn.zTree.getZTreeObj("tree");
var node = treeObj.getNodeByTId("tree_10");

4、zTreeObj.selectNode选中指定节点

参数:treeNode   JSON 需要被选中的节点数据

addFlag   Boolean

addFlag = true 表示追加选中,会出现多点同时被选中的情况

addFlag = false 表示单独选中,原先被选中的节点会被取消选中状态

setting.view.selectedMulti = false 时,此参数无效,始终进行单独选中

5、zTreeObj.reAsyncChildNodes强行异步加载父节点的子节点。[setting.async.enable = true 时有效]

参数:parentNode   JSON 指定需要异步加载的父节点 JSON 数据,

reloadType   String reloadType = "refresh" 表示清空后重新加载。reloadType != "refresh" 时,表示追加子节点处理
isSilent   Boolean 设定异步加载后是否自动展开父节点。isSilent = true 时,不展开父节点,其他值或缺省状态都自动展开。

方法实例

1. 重新异步加载当前选中的第一个节点

var treeObj = $.fn.zTree.getZTreeObj("tree");
var nodes = treeObj.getSelectedNodes();
if (nodes.length>0) {
treeObj.reAsyncChildNodes(nodes[0], "refresh");
}

4、部分后台代码

/** 
* 查询工程对象 
* 
* @return 
*/ 
@ResponseBody 
@RequestMapping("/loadNodeByID.htm") 
public List<ZTreeNode> loadNodeByID(Integer id) { 
 List<ZTreeNode> nodes = cuScriptProjectService.loadNodesByID(id); 
 // ZTreeNode zTreeNode = cuScriptProjectService.loadNodeByID(id); 
 return nodes; 
} 

2、

/** 
 * 根据工程ID加载工程节点数据 
*/ 
@Override 
public List<ZTreeNode> loadNodesByID(Integer id) { 
 /* 查询工程集合 */ 
 List<CUProject> allProjects = this.cuProjectDAO.findAllProjects(); 
 Map<Integer, List<CUProjectVO>> allPorjectList = this.buildProjectVOMap(allProjects); 
 /* 查询脚本集合 */ 
 List<CUScript> allScripts = this.cuScriptDAO.findAllScripts(); 
 Map<Integer, List<CUScriptVO>> allScriptMap = this.buildScriptVOMap(allScripts); 
 /* 构建ZTreeNode数据结构 */ 
 List<ZTreeNode> treeNodeList = new ArrayList<ZTreeNode>(); 
 loopBuildZTree(id, allPorjectList, allScriptMap, treeNodeList); 
 return treeNodeList; 
}

以上所述是小编给大家介绍的zTree实现节点修改的实时刷新功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# ztree实时刷新  # ztree获取当前选中节点子节点id集合的方法  # js树插件zTree获取所有选中节点数据的方法  # 后台获取ZTREE选中节点的方法  # 在父页面得到zTree已选中的节点的方法  # ztree获取选中节点时不能进入可视区域出现BUG如何解决  # jQuery插件zTree实现删除树节点的方法示例  # zTree异步加载展开第一级节点的实现方法  # jQuery插件zTree实现的基本树与节点获取操作示例  # jQuery插件zTree实现清空选中第一个节点所有子节点的方法  # zTree节点文字过多的处理方法  # 加载  # 返回值  # 详细说明  # 小编  # 请参考  # 多点  # 第一个  # 在此  # 不需要  # 要在  # 数据结构  # 给大家  # 有必要  # 可以利用  # 所述  # 给我留言  # 中会  # 如无  # 感谢大家  # 清空 


相关文章: 微信小程序制作网站有哪些,微信小程序需要做网站吗?  如何在阿里云香港服务器快速搭建网站?  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  广州商城建站系统开发成本与周期如何控制?  如何在宝塔面板创建新站点?  建站之星×万网:智能建站系统+自助建站平台一键生成  如何快速上传自定义模板至建站之星?  北京网站制作的公司有哪些,北京白云观官方网站?  专业网站制作服务公司,有哪些网站可以免费发布招聘信息?  建站之星CMS五站合一模板配置与SEO优化指南  如何通过FTP服务器快速搭建网站?  如何通过建站之星自助学习解决操作问题?  长沙企业网站制作哪家好,长沙水业集团官方网站?  如何安全更换建站之星模板并保留数据?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  如何在Windows服务器上快速搭建网站?  打鱼网站制作软件,波克捕鱼官方号怎么注册?  大连网站设计制作招聘信息,大连投诉网站有哪些?  如何高效配置香港服务器实现快速建站?  如何选购建站域名与空间?自助平台全解析  建站10G流量真的够用吗?如何应对访问高峰?  如何实现建站之星域名转发设置?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  ,巨量百应是干嘛的?  python的本地网站制作,如何创建本地站点?  已有域名如何免费搭建网站?  c++ stringstream用法详解_c++字符串与数字转换利器  ,怎么在广州志愿者网站注册?  视频网站app制作软件,有什么好的视频聊天网站或者软件?  javascript基本数据类型及类型检测常用方法小结  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  如何在腾讯云服务器快速搭建个人网站?  高防服务器如何保障网站安全无虞?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  黑客如何通过漏洞一步步攻陷网站服务器?  如何通过网站建站时间优化SEO与用户体验?  建站之星后台密码如何安全设置与找回?  建站之星安装后如何配置SEO及设计样式?  如何通过NAT技术实现内网高效建站?  南平网站制作公司,2025年南平市事业单位报名时间?  如何在阿里云服务器自主搭建网站?  建站之星安装需要哪些步骤及注意事项?  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  如何在万网开始建站?分步指南解析  零服务器AI建站解决方案:快速部署与云端平台低成本实践  建站上市公司网站建设方案与SEO优化服务定制指南  自助网站制作软件,个人如何自助建网站?  c# 在ASP.NET Core中管理和取消后台任务  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。