jquery.treeTable简单记录

14年写过的代码 今年写的时候 完全没印象 ,好记忆不如烂笔头。前台bootstrap  后台 springmvc

截取部分重要代码 主要是table  tr上有个id  有个pId  代表节点 父节点 name是显示节点名称。

                   <lable class="fa fa-list"></lable>
                        区域列表</a></li>
                  
                </ul>
            <div class="tab-content">
                <tags:showMessage />
                <table id="treeTable" class="table table-striped table-bordered table-advance table-hover table-condensed">
                    <thead>
                    <tr>
                        <th>区域</th>
                      
                    </tr>
                    </thead>
                    <c:forEach items="${list}" var="vo">
                        <tr id="${vo.id}" pId="${vo.pId ne '1'?vo.pId:'0'}">
                            <td> ${vo.name}</td>
                        </tr>
                    </c:forEach>
                </table>
            </div>
        </div>
    </div>
</div>
</div>
<!-- END CONTENT BODY -->
</div>

</body>
</html>
<content tag="myJavascript">
    <link href="${ctx}/static/assets/treeTable/themes/vsStyle/treeTable.min.css" rel="stylesheet" type="text/css"/>
    <script src="${ctx}/static/assets/treeTable/jquery.treeTable.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $("#treeTable").treeTable({
            	 expandable : true,
                 initialState:"expanded",
                 //expandable : true
                 clickableNodeNames:true,//点击节点名称也打开子节点.
                 indent : 30//每个分支缩进的像素数。
            	
            });
        });
    </script>

springmvc : list是查询出拼成带有id,pid,name的数据。sortlist最为关键 递归排序。没有sortlist  拼的树在jsp页面子节点 被展示 不是挂到父节点下。只能通过递归来挂到父节点下。

	
	@RequestMapping("treemeter")
	public String treemeter(Model model, JlMeterRel m) {
	
		List<ZTreeOfMeterVo> list = jlMeterRelService.getZTreeOfMeterInfos();
		List<ZTreeOfMeterVo> newList = Lists.newArrayList();
		ZTreeOfMeterVo.sortList(newList, list, "0");
		model.addAttribute("list", newList);
		
		return viewName("treeofmeterlist");
	}
public class ZTreeOfMeterVo extends ZTree{

	public static void sortList(List<ZTreeOfMeterVo> list, List<ZTreeOfMeterVo> sourcelist, String parentId){
		for (int i=0; i<sourcelist.size(); i++){
			ZTreeOfMeterVo e = sourcelist.get(i);
			if (StringUtils.isNotBlank(e.getpId())
					&& e.getpId().equals(parentId)){
				list.add(e);
				// 判断是否还有子节点, 有则继续获取子节点
				for (int j=0; j<sourcelist.size(); j++){
					ZTreeOfMeterVo child = sourcelist.get(j);
					if (StringUtils.isNotBlank(child.getpId())
							&& child.getpId().equals(e.getId())){
						sortList(list, sourcelist, e.getId());
						break;
					}
				}
			}
		}
	}
}
Ztree:主要是id  pid name 因为我们树形插件用到ztree.js   本人懒  不想自己再写一个结构id,pid,name
的pojo.所以继承过来

 private String id;
            private String pId;
            private String name;
            private String iconSkin;
            private boolean open;
            private boolean root;
            private boolean isParent;
            private boolean nocheck;
            private boolean isRelation;
            private String relationId;
}
Service :处理树业务逻辑。这个就是拼一个root节点0 展开的全部数据的树节点。(主要拼成列表要的)
	/**
	 * 获取树形list(房产位置-房产 树)
	 * @return
	 */
	public List<ZTree> getZTreeList(){
		
		List<ZTree> ztreeList = houseLocationService.topNode();
		ztreeList.addAll(jlMeterRelMapper.findZTreeOfMeterInfos());
		return ztreeList;
	}
	
	/**
	 * 往树上写计量表统计信息
	 * @return
	 */
	public List<ZTreeOfMeterVo> getZTreeOfMeterInfos(){
		
		//区域获取房间
		// feeStandardService.getHouseBelongParentId(topList.get(0).getId(), topList)
		List<ZTreeOfMeterVo> list = new ArrayList<ZTreeOfMeterVo>();
		
		for(ZTree zTree: this.getZTreeList())
		{
			ZTreeOfMeterVo vo = new ZTreeOfMeterVo();
			
			BeanUtils.copyProperties(zTree, vo);
			
			list.add(vo);
		}
		return list;
	}
	
	@Select("select a.objid id,a.tarid pId,b.loname name from stru_relshp a,location b "+
			" where a.objid=b.id and a.relat='204' and current_date between a.start_date and a.end_date   order by a.ranse asc ")
	public List<ZTree> findZTreeOfMeterInfos();
}

综上:根据jsp table需要的数据结构 从数据库中取出 拼凑出来。然后通过递归排序遍历下在List里的顺序。大功告成。关键就是sortlist.最终运行

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值