bootstrap-table - bootstrap table server端分页 + 导出【选中】数据并存

查看:899
本文介绍了bootstrap-table - bootstrap table server端分页 + 导出【选中】数据并存的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

bootstrap table server端分页 和 导出【选中】数据不能并存么?

首先,使用client分页方式,可以加载数据,可以导出【选中】。
更换为server分页后,数据可以正常加载,但数据导出只能导出当前页所有,不能导出选中。

同时,注意到。在Django-xadmin中,也是只能导出当前页所有的行,没有提供导出选中的行 这个功能。
难道是框架的问题?

解决方案

看源码就知道,是server端的话,选择导出就有问题。
如果只是导出当前页选择的内容,直接修改bootstrap-table-export.js源码即可
找到selected选择处理逻辑段,原理隐藏未选中的行,调用导出,再显示隐藏行即可。
如果你是翻页选中,只能到后台查询显示到前台,导出再显示原来的数据

var trs = that.$body.children(); 
for (var i = 0; i < trs.length; i++) {
    var $this = $(trs[i]);
    if(!$this.find(sprintf('[name="%s"]',that.options.selectItemName)).prop('checked')){
      $this['hide']();
 }}
doExport();
that.getRowsHidden(true);

方案2:
就是给load(selectedData),中selectedData给赋值一些load里面需要的数据
this.options.totalRows = data.total;
fixedScroll = data.fixedScroll;
data = data[this.options.dataField];

BootstrapTable.prototype.load = function (data) {
        var fixedScroll = false;

        // #431: support pagination
        if (this.options.sidePagination === 'server') {
            //就是修改data中使其满足获取data
            this.options.totalRows = data.total;
            fixedScroll = data.fixedScroll;
            data = data[this.options.dataField];
        } else if (!$.isArray(data)) { // support fixedScroll
            fixedScroll = data.fixedScroll;
            data = data.data;
        }

        this.initData(data);
        this.initSearch();
        this.initPagination();
        this.initBody(fixedScroll);
    };

这篇关于bootstrap-table - bootstrap table server端分页 + 导出【选中】数据并存的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆