首先了解什么是TreeTable?

treeTable 是跨浏览器、性能很高的 jQuery 的树表组件,它使用非常简单,只需要引用 jQuery 库和一个 js 文件,接口也很简单。
优点:
  1. 兼容主流浏览器:支持 IE6 和 IE6+, Firefox, chrome, Opera, Safari
  2. 接口简洁:在普通表格的基础上增加父子关系的自定义标签就可以
  3. 组件性能高:内部实现了只绑定了 table 的事件、使用了 css sprite 合并图片等
  4. 提供两种风格:通过参数来设置风格
废话不多说,先上效果图:

页面引用:

CSS部分

<link href="/static/assets/apps/plugins/treeTable/themes/vsStyle/treeTable.min.css" rel="stylesheet" type="text/css" />

JS部分

<script src="/static/assets/apps/plugins/treeTable/jquery.treeTable.min.js" type="text/javascript" ></script>
注:css和js 可以在CDN中搜索treetable即可下载,CDN地址:https://www.bootcdn.cn/
参数配置
  • theme: string 主题,有两个选项:default、vsStyle. 默认:default

  • expandLevel: int 树表的展开层次. 默认:1

  • column: int 可控制列的序号. 默认:0,即第一列

  • onSelect: function 拥有 controller 自定义属性的元素的点击事件,return false 则中止展开

  • beforeExpand: 展开子节点前触发的事件

属性说明
  • id: string 行的 id

  • pId: string 父行的 id

  • controller: bool 指定某一个元素是否可以控制行的展开

  • hasChild: bool 指定某一个 tr 元素是否有孩子(动态加载需用到)

  • isFirstOne: bool 指定某一个 tr 元素是否是第一个孩子(自动生成属性,只读)

  • isLastOne: bool 指定某一个 tr 元素是否是最后一个孩子(自动生成属性,只读)

  • prevId: string 前一个兄弟节点的 id(自动生成属性,只读)

  • depth: string 当前行的深度(自动生成属性,只读)

使用方法

<script>$("#treeTable").treeTable({"column":1,"expandLevel": 2});
</script>
HTML结构代码
<table id="treeTable" class="table table-striped table-bordered table-hover"><thead><tr role="row"><th> 类目ID </th><th> 类目名称 </th><th> 状态</th><th> 排列序号</th><th> 更新时间</th><th>操作</th></tr></thead><tbody><c:forEach items="${list}" var="itemcat">//注意:此处的 id 和pId 是重点<tr id="${itemcat.id}" pId="${itemcat.parentId}"><td>${itemcat.id}</td><td>${itemcat.name}</td><td>${itemcat.status}</td><td>${itemcat.sortOrder}</td><td><fmt:formatDate value="${itemcat.updated}" pattern="yyyy-MM-dd HH:mm:ss" /></td>                 </tr></c:forEach></tbody>
</table>
写到这里其实雏形的树形表格列表已经可以展示出来,但是为了更好的体验,让表格的父子关系展示的更加明了,于是加入了服务端的排序代码(引用之前一个小项目的代码):
@Controller
@RequestMapping(value = "item/cat")
public class ItemCatController extends AbstractbaseTreeController<ItemCat, ItemCatService> {@GetMapping(value = "list")public String list(Model model) {List<ItemCat> itemCatsBeforeList = service.seletAll();//新建一个集合用于存放排序后的 查询内容List<ItemCat> itemCatsAfterList = new ArrayList<>();//  0L 代表长整形  Longsort(0L, itemCatsBeforeList, itemCatsAfterList);model.addAttribute("list", itemCatsAfterList);return "item/cat/list";}/***  树形结构排序* @param parentId  父节点ID* @param itemCatsBeforeList  源数据    原始查询的数据* @param itemCatsAfterList  目标数据   新创建的集合* @return*/protected List<T> sort(Long parentId, List<T> itemCatsBeforeList, List<T> itemCatsAfterList) {for (T entity : itemCatsBeforeList) {if (entity.getParentId().equals(parentId)) {itemCatsAfterList.add(entity);sort(entity.getId(), itemCatsBeforeList, itemCatsAfterList);}}return itemCatsAfterList;}
}

使用JQuery TreeTable实现树形表格相关推荐

  1. bootstrap 树形表格渲染慢_layUI之树状表格异步加载组件treetableAsync.js(基于treetable.js)...

    概述 后台框架中使用树状表格是非常常用的操作,layUI本身并没有这种组件. 第三方的treetable.js做到了完美的实现,但是不能实现在双击时异步加载数据,本文就是站在了巨人的肩膀上实现的异步加 ...

  2. LayUI treetable树形表格的实现, 数据格式正确,不显示的解决方案 和在这个过程中遇到的坑~ 认真看 你会得到一些想要的答案。

    先给大家看下效果吧! 我这边只是针对数据显示的问题做了解释.并没有增删改查.找增删改查的同学可以不用看了. 做出这样的效果,首先我们要借用LayUI的内置插件,treetable.js 网上有很多,之 ...

  3. layui树形表格(treetable)列数据合计

    项目中遇到的问题,按要求对后台数据以树形列表(使用layui的第三方扩展组件,使用方法自行百度)展示之后.又来了新的需求,需要对展开后的子列表进行统计并将结果显示到父级列表.百度了半天没找到相关的示例 ...

  4. 树形表格treeTable插件实现固定列功能

    因为要做树形表格使用treeTable插件,但目前插件作者还没有更新表格固定列的功能,恰巧项目又需要实现表格固定列这一需求,所以自己写了能实现固定列的函数. <script>//固定列fu ...

  5. 实现layui的树形表格treeTable

    实现layui的树形表格treeTable,layui中有 可以使用 'tree','table' , 进而使用layui.treeGird实现 layui.treeGird({elem: '#dem ...

  6. layui 树形表格

    最近的一个项目,用layui里的表格要实现树形表格功能,去官网查找没有,最后在网上找了一位大神开发的插件-treeTable. 插件地址 演示地址: https://whvse.gitee.io/tr ...

  7. DataTables TreeGrid 插件 可以快速实现树形表格

    dataTables.treeGrid 插件介绍 更新日志 真实系统展现效果 DEMO参考 使用方法 DataTable 渲染JSON数据格式 HTML数据格式(以DEMO截图代码为例) 插件介绍 针 ...

  8. layui树形懒加载_layui树形表格支持非异步和异步加载

    layui树形表格支持非异步和异步加载. 使用示例如下: 展开全部 展开一层 折叠全部 折叠一层 layui.config({ base: '/uui/treetable-lay/module/' } ...

  9. element表格实现树形全选_vue+element UI实现树形表格带复选框的示例代码

    一:在component文件夹下新建如下treeTable文件夹,里面有2个文件: eval.js:将数据转换成树形数据 /** * @Author: jianglei * @Date: 2017-1 ...

  10. jQuery LigerUI 使用教程表格篇(1)

    阅读目录 第一个例子 数据结构 两种绑定数据的方式 配置column 自定义表头 自定义单元格 排序与分页 事件与方法 第一个例子 简介 ligerGrid是ligerui系列插件的核心控件,用户可以 ...

最新文章

  1. msvcrt.lib和LIBCD.lib链接冲突
  2. Vue 字面量语法 vs 动态语法
  3. O2O上门实战复盘:10万元如何换来937个订单?
  4. SpringBoot 实现Session共享
  5. Java编写学生类student程序_编写一个JAVA程序片断定义一个表示学生的类student.docx...
  6. ORA-01403: no data found
  7. LeetCode:递归思想的延伸,从斐波那契数列到爬楼梯模型
  8. python解读器_Python装饰器完全解读
  9. ArcGIS学习总结(五)——地形分析-TIN及DEM的生成
  10. Android实时直播,一千行java搞定不依赖jni,延迟0.8至3秒,强悍移动端来袭
  11. 机器学习—数据挖掘之灰色预测算法
  12. hibernate jar 下载地址
  13. kd树(K-dimensional tree)
  14. 计算机表格性格计算,MBTI职业性格测试自动计算得分并得出分析结果.docx
  15. 基于layui后台html模板免费下载
  16. 2020蓝桥杯模拟赛题目解析(上)
  17. 当“互联网+”遇上“新零售”,卖1000万杯咖啡有何难?
  18. 基于BT WebHook+Gitee WebHook的自动化部署
  19. postman使用实践教程图文详解
  20. oracle mysql排序分页,Oracle、Mysql分页 排序

热门文章

  1. 元宇宙需要“基建狂魔”
  2. 称重仪表显示ol怎么解决_地磅称重时仪表显示出现跳数如何解决?
  3. 安装配置管理 之 LumaQQ 的安装和使用
  4. 电脑常见故障及解决方法
  5. traceroute、tracert服务的工作原理
  6. Android简易聊天室软件(HTTP实现)
  7. roseha-mirror oracle数据库同步 可靠性,RoseHA集群:RHEL+RoseMirror+Oracle【1】
  8. MybatisPlus学习笔记
  9. [2020-11-30 ]国产化操作系统调研
  10. 专利交底书怎么写 -