TreeTable树形数据列表

TreeTable树形数据列表使用Treetable展示ajax数据,通用的List集合递归转换为具有层级关系的List集合

大家好,又见面了,我是你们的朋友全栈君。

    做项目的过程中遇到TreeTable,感觉很焦急,于是我就去github上面找,发现很糟糕。上面需要写的代码太过于多,本人手比较懒,所以几番查找。找到了一个比较实用的TreeTable的js

   TreeTable树形数据列表

    文件中的default和vsStyle是两种不同的风格

页面引用就是jquery.treeTable.js就可以了,那么怎么实现树形列表呢?当然数据就需要是json格式

var request = JSON.stringify(paramsModel);  
		request = escape(encodeURIComponent(request));
		var url=baseUrl+"rest/xx/"+request+"/"+key+".json";	
		console.log(url);
		$.ajax({
            type: "get",
            url: url, //Servlet请求地址
            dataType: 'json',
            cache: false,
  			async: false,
            success: function (data) {
            	//eval将字符串转成对象数组  
            	data=eval(data);
            	var showContent = ""; //添加内容变量
            	if(data!=null){
            		var con = data.rows;//获取json中的list列表
                    console.log(con);
                    if(con.length>0){
    	                for (var i = 0; i < con.length; i++) {
    	                    var a = con[i];
    	                    if (a.fid == a.departId) { //判断是否是一级节点
    	                        showContent += "";
    	                        
    	                    } else {
    	                        showContent += "";
    	                        
    	                    }
    	                }
                    }
            	}
                $("#treeTable").append(showContent);
                //以下为初始化表格样式
                var option = {
                    theme: 'vsStyle',
                    expandLevel: 2,
                };
                $('#treeTable').treeTable(option);
                console.info("内容已经加载并初始化");
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert(errorThrown);
                console.log("数据请求异常 请查看控制台错误 或者检查url配置");
            }
        });

其中里面的theme就是不同风格对应的文件夹

那么后台的数据就需要对应成json格式

这里推荐一个处理递归数组的Java文件

public class ProjectConstructeTreeList {
    private List<BimProjectConstruction> resultNodes = new ArrayList<BimProjectConstruction>();//树形结构排序之后list内容
    private List<BimProjectConstruction> nodes; //传入list参数
    
    public ProjectConstructeTreeList(List<BimProjectConstruction> nodes) {//通过构造函数初始化
        this.nodes = nodes;
    }

    /**
     * 构建树形结构list
     * @return 返回树形结构List列表
     */
    public List<BimProjectConstruction> buildTree() {
        for (BimProjectConstruction node : nodes) {
            if (node.getFid().equals(node.getDepartId())) {//通过循环一级节点 就可以通过递归获取二级以下节点
                resultNodes.add(node);//添加一级节点
                build(node);//递归获取二级、三级、。。。节点
            }
        }
        return resultNodes;
    }
    /**
     * 递归循环子节点
     *
     * @param node 当前节点
     */
    private void build(BimProjectConstruction node) {
        List<BimProjectConstruction> children = getChildren(node);
        if (!children.isEmpty()) {//如果存在子节点
            for (BimProjectConstruction child : children) {//将子节点遍历加入返回值中
                resultNodes.add(child);
                build(child);
            }
        }
    }
    /**
     * @param node
     * @return 返回
     */
    private List<BimProjectConstruction> getChildren(BimProjectConstruction node) {
        List<BimProjectConstruction> children = new ArrayList<BimProjectConstruction>();
        for (BimProjectConstruction child : nodes) {
            if (node.getId().equals(child.getFid())) {//如果id等于父id
                children.add(child);//将该节点加入循环列表中
            }
        }
        return children;
    }

}

调用方式:

ProjectConstructeTreeList tree = new ProjectConstructeTreeList(ConstructionList);
List<BimProjectConstruction> listTree=tree.buildTree();

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142936.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 高校校园网建设方案【含网络拓扑图+拓扑结构图+配置命令】(详细版)

    高校校园网建设方案【含网络拓扑图+拓扑结构图+配置命令】(详细版)xxx大学xxx校区网络整体规划设计方案完成日期:2017年1月4日目录一、项目综述…11.1学校概况…11.1.1.11.2建设目标…11.2.1概述…11.2.2具体目标…11.3建设原则…11.3.1概述…11.3.2具体原则…2二、需求分析…32….

    2025年7月7日
    3
  • ws 激活码2021【永久激活】

    (ws 激活码2021)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月20日
    284
  • LMDB笔记_pdf怎么做笔记

    LMDB笔记_pdf怎么做笔记作为一个计算机底层小白,在了解一个知识点的时候时常需要恶补很多基础知识。本文记录在了解LMDB过程中接触的知识点。LMDB基本架构一个比较官方的解释:lmdb的基本做法是使用mmap文件映射,不管这个文件存储实在内存上还是在持久存储上。lmdb的所有读取操作都是通过mmap将要访问的文件只读的映射到虚拟内存中,直接访问相应的地址.因为使用了read-only的mmap,同样避免了程序错误将存…

    2022年9月29日
    2
  • NSGA2 Matlab toolbox

    NSGA2 Matlab toolbox最近做数模,偶然间发现这个算法,还在学习中,下面转载下资料。NSGA-II是一个很成熟的多目标优化算法了。根本原理还是Patero最优问题。NSGA-IImatlab代码,网上比较有名的是AravindSeshadri写的,采用的是BSD许可证。它的程序可以在http://www.mathworks.com/matlabcentral/fileexchange/10

    2022年5月19日
    69
  • 软件测试缺陷报告内容_软件测试缺陷分析

    软件测试缺陷报告内容_软件测试缺陷分析1软件缺陷缺陷是一种泛称,它可以指功能的错误,也可以指性能低下,易用性差等 并不是所有的测试人员都能提交被开发认可的缺陷,也不是测试人员在任何时候都能提交被开发认可的缺陷2什么是软件缺陷软件未达到产品说明书标准的功能 软件出现了产品说明书指明不会出现的错误 软件功能超出产品说明书指明范围 软件未达到产品说明书虽未指出但应达到的目标 软件测试员认为软件难以理解,不易使用,运行速度缓慢,或者最终用户认为不好3缺陷产生的原因4发现缺陷用户体验不够好 界面上有明显的错误信

    2022年9月17日
    3
  • 史上最全的中高级JAVA工程师-面试题汇总

    史上最全的中高级JAVA工程师-面试题汇总史上最全的java工程师面试题汇总,纯个人总结,精准无误。适合中高级JAVA工程师。

    2022年6月13日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号