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

发布于 2022-09-04 08:17:01 字数 329 浏览 21 评论 0

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

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

洋洋洒洒 2022-09-11 08:17:01

看源码就知道,是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);
    };
草莓味的萝莉 2022-09-11 08:17:01

看来在server端分页下,是无解了,仿照xadmin的方式,在server端实现数据查询,写进csv,通过StreamingHttpResponse返回给前端了。

罗罗贝儿 2022-09-11 08:17:01

我的也是在这样,而且前端table有formatter导出的内容就有有误,真正想实现导出还得后台来干

败给现实 2022-09-11 08:17:01

好像没什么用,

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文