查询child子节点数据不显示问题,主要问题出在treeSpid这个参数上面,具体参数说明看下面列子,
treeSpid参数我们一般定义 0,-1或者'' 表示最顶级目录,当我们查询的数据的pid不是这几个设置的值,就会造成数据显示不出来,我们怎么办呢?
那就让查询出来的数据符合要求就可以显示出来数据了,操作程序代码如下:
//获取查询数据结果最小pid,list为数据列表
Integer pid = service.getListMiniPid(Params);
pid =pid !=null?pid:0;
//获取查询数据的所有Id列表
List<Integer> idList = new ArrayList<Integer>();
for(Params ag:list){
idList.add(ag.getId());
}
//判断pid是否存在ID列表中,不存在,设置数据pid的值为最小值
for(Params ag:list){
if(null!=ag.getPid()){
boolean falg = idList.contains(ag.getPid());
if(!falg){
ag.setPid(pid);
}
}
}
//组装返回数据
Map<String,Object> map = new HashMap();
map.put("list",list);
map.put("pid",pid);
data.setData(map);
//初始化表格,data为传递参数
var renderTable = function (data) {
layer.load(2);//加载框
$.get('调用方法?'+data, function (res) {
treetable.render({
treeColIndex: 2,//树形图标显示在第几列
treeSpid: res.data.pid,//最上级的父级id:比如你可以规定pid为0或-1的是最顶级的目录
treeIdName: 'id',//id字段的名称
treePidName: 'pid',//pid字段的名称
treeDefaultClose: false,//是否默认折叠
treeLinkage: false,//父级展开时是否自动展开所有子级
elem: '#ZX_table_list',
height: 'full-115',
data: res.data.list,
page: false,
cols: [[
数据渲染显示字段
]],
done: function () {
//关闭加载
layer.closeAll('loading');
}
});
}, 'json');
};
来源:oschina
链接:https://my.oschina.net/u/3204029/blog/4295072