获取当前被选中的树节点ztree_英语| 126期 Tree 如何设计树菜单以提高遍历效率?...

74132736c1947dc7be50aca9117043f8.png

项目系统中左侧导航或者目录一般都是用Tree结构。用户理论上可以无限深地创建数据。在遍历一个树节点下面的所有子节点数据时,以前最常见的做法就是遍历,数据量大的情况下性能也是问题。现在是通过什么方式遍历树菜单呢?请客官往下看!

单词语法

Grammar

Tree

英 [triː]   美 [triː]  

n.树;树木;乔木

vt.把…赶上树;使处于困境;

第三人称单数trees
现在分词treeing
过去式treed
过去分词treed
复数trees

经典例句

There is an apple tree in my yard.
在我的院子里有一颗苹果树。

编程语法

Java

需求

需求一:从父节点找子节点。系统左侧是能耗(Energy)的树菜单,右侧是能耗对应的设备(Equipment)能耗值列表。目前需要提供能耗统计功能。可以根据能耗的任意一个节点,统计当前节点下的所有能耗总和。

需求二:从子节点找父节点。系统左侧是区域(Location)的树菜单,右侧是区域对应的设备(Equipment)列表。目前需要提供导出设备列表功能。需要把设备所在的区域位置也导出来。


分析:

用递归的方法遍历每个节点是比较原始的做法。现在比较常用的方法是在数据表中添加辅助字段,再通过辅助字段进行模糊查询。


解决:

第一步:Tree的树菜单添加辅助字段code。其生成规则是父节点的code拼上子节点的code。而这个code的值便是树菜单的id。

第二步:从父节点找子节点。只需要将当前树节点的id作为模糊查询条件(%id%),便可以查到当前节点下的所有子节点。一条SQL语句解决了一堆递归查询。

第三步:从子节点找父节点。只需要找到当前设备关联的区域数据。再将区域的code做字符串分隔,获取其父节点id,最后通过id获取对应树实体数据。

往期精彩

previous

英语| 122期 Space空格

英语| 121期 Memory内存

英语| 120期 Variable变量

英语| 119期 Parameter参数

英语| 118期 Index 索引

英语| 117期 Divide 分开

2fa7add4c5cb2008c80771fb27b682b5.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值