Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

没法分页怎么办 #9

Open
lzl96666 opened this issue Mar 16, 2018 · 3 comments
Open

没法分页怎么办 #9

lzl96666 opened this issue Mar 16, 2018 · 3 comments

Comments

@lzl96666
Copy link

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

@lslvxy
Copy link
Owner

lslvxy commented Mar 16, 2018

树结构是不支持分页的。

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

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

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

@a1014893994
Copy link

a1014893994 commented Apr 20, 2018

在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。。。

@lslvxy
Copy link
Owner

lslvxy commented Apr 20, 2018

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

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants