bootstrap-table - bootstrap table server端分页 + 导出【选中】数据并存
本文介绍了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屋!
查看全文