一个关于jqGrid的treeGrid数据合成的问题
这是一个我在使用的前端表格控件,最近采用它支持的treeGrid:
我是用JSON作为数据交换方式,下面是一段产生的数据:
{ "pageSize": 3, "pageNumber": 1, "list": [ { "id": 200, "level": 0, "expended": true, "sortnum": 0, "name": "Super", "isleaf": false "parentid": null }, { "id": 201, "level": 1, "expended": true, "sortnum": 1, "name": "Administrator", "isleaf": true, "parentid": 200 }, { "id": 202, "level": 0, "expended": true, "sortnum": 3, "name": "Users", "isleaf": false, "resource": [ "parentid": null } ], "totalRow": 3, "totalPage": 1 }
那么问题来了,数据库添加的数据不含这三个额外的属性,而且parentid可以设置成多级,程序调取数据之后,需要合成这些数据。想了很久都没实现,有没有比较好的算法呢,请高手指教。
一开始我是遍历结果list,然后role.findParent()的,可是,多级别,
while( parent != null && !parent.equals(role) ) {
parent = parent.findParent(); // dao
level++;
parent.setIsLeaf(false);
}
给我死循环了呵呵。
给点指导性思路吧。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
引用来自“mark35”的评论
还是在数据库中保存相应值比较的好。
nested格式主要是方便数据库查询:判断左右值一条SQL就可以把所有子节点都查出来,而无须递归查询
考虑这种数据是动态维护的,如果页面显示的额外属性也放在表里面,感觉维护变难了。
引用来自“mark35”的评论
还是在数据库中保存相应值比较的好。
nested格式主要是方便数据库查询:判断左右值一条SQL就可以把所有子节点都查出来,而无须递归查询
算法我已经实现了:欢迎吐槽!封装一下做一个工具类,实体继承一个Node接口即可。
控制台结果:
算法比较丑陋。
jqGrid TreeGrid 加载数据 排序 扩展 https://www.cnblogs.com/cl-blogs/p/10829279.html
还是在数据库中保存相应值比较的好。
nested格式主要是方便数据库查询:判断左右值一条SQL就可以把所有子节点都查出来,而无须递归查询
引用来自“Twisst”的评论
算法我已经实现了:欢迎吐槽!封装一下做一个工具类,实体继承一个Node接口即可。
控制台结果:
算法比较丑陋。