首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >bootstrap treeview根据后端数据id,级联勾选下级

bootstrap treeview根据后端数据id,级联勾选下级

作者头像
hotqin888
发布2019-03-21 16:09:04
发布2019-03-21 16:09:04
1.7K0
举报
文章被收录于专栏:hotqin888的专栏hotqin888的专栏

服务端传到前段一个树状目录某一个目录id,如何显示这个目录勾选,顺带这个目录的所有下级也勾选呢。

笨办法是服务端根据这个id,取出所有子孙id,到前端来选择。问题是,treeview没有这个功能:根据id来获取这个node。

view的很多方法都是对node或nodes进行操作,那么这个node或nodes如何来呢?你自己根据服务端传过来的id、text等定义一个node是不行的,比如:

代码语言:javascript
复制
                   var Nodes = [{
                     text: '广州北江引水(水源)工程',
                     id:1,
                     code:'SL1204'
                   }];
                  $('#tree').treeview('toggleNodeChecked', [ Nodes, { silent: true } ]);

 找来找去,唯一能获得node的办法就是findnode方法,开始犯了个错误,这个findnode是根据正则过滤从而查找出来符合条件的node,也就是说,不是唯一的结果,类似模糊查询。它说明里说要精确查询,需要如何如何。看下列正确代码:

代码语言:javascript
复制
                for(var i=0;i<data.length;i++){
                  var findCheckableNodess = function() {
                    return $('#tree').treeview('findNodes', ['^'+data[i]+'$', 'id']);
                  }; 
                  var checkableNodes = findCheckableNodess();
                  $('#tree').treeview('toggleNodeChecked', [ checkableNodes, { silent: true } ]);
                }

'^'+data[i]+'$'——这个就是哪个精确查找的方式了,根据id得到这个node ,然后用toggleNodeChecked方法,就能将这个节点和其所有子孙勾选了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年02月28日,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档