bootstrapTable-treeView icon indicating copy to clipboard operation
bootstrapTable-treeView copied to clipboard

没法分页怎么办

Open lzl96666 opened this issue 6 years ago • 3 comments

用了树状表格。。怎么分页

lzl96666 avatar Mar 16 '18 03:03 lzl96666

树结构是不支持分页的。

想要分页的话要重新实现分页方法,

提供一个思路就是先查询出所有数据,然后根据一级节点进行分页。

原始的分页配置不适用在分页上。

lslvxy avatar Mar 16 '18 12:03 lslvxy

在bootstrapTable-treeview.js的initBody方法中大概415行左右位置加上以下代码,实现了页面按照父节点分页

` /*重写分页方法*/
        var parentNum = 0,//标志,用于计算父节点数量
            start = 0,//开始位置
            end = 0,//结束位置
            length = 0;//父节点长度
        for(var k = 0;k<data.length;k++){
            if(data[k].parentId == null||data[k].parentId==""){
                length += 1;
            }
        }
        for(var i = 0;i<data.length;i++){
            if(data[i].parentId == null){
                parentNum += 1;
                if(parentNum == ((this.options.pageNumber - 1) * this.options.pageSize + 1)){
                    start = i;
                    break;
                }
            }
        }
        if(parentNum+this.options.pageSize - 1 > length){
            end = data.length;
        }else{
            var j = start+1
            for(j;j<data.length;j++){
                if(data[j].parentId == null){
                    parentNum += 1;
                    if(parentNum == (this.options.pageNumber * this.options.pageSize + 1)){
                        end = j;
                        break;
                    }
                }
            }
        }

        this.pageFrom = start+1;
        this.pageTo = end;`

在bootstrap-table.js的initPagination方法中在给 this.options.totalRows赋值的语句后(1319行左右)加上以下代码,实现总页数按照父节点的长度配置。

if(this.options.treeView){
           var length = 0;//父节点长度
           for(var k = 0;k<data.length;k++){
               if(data[k].parentId == null||data[k].parentId==""){
                   length += 1;
               }
           }
           this.options.totalRows = length;
       }

checkbox还是有问题。。。 本人刚参加工作的菜鸟有问题请轻饶。。 啊,还有。。bootstrapTable-treeview.js设置的默认分页为false,请改为true。。。

a1014893994 avatar Apr 20 '18 08:04 a1014893994

分页只能根据一级节点进行分页,而且不能后台分页。

想要支持后台分页的话必须改造后台方法,通过page参数查询的必须是一级节点的数据。

这个与业务相关性比较大,需要再具体项目中进行扩展。

lslvxy avatar Apr 20 '18 08:04 lslvxy