bootstrap table 多选框分页保留示例代码

网友投稿 309 2023-06-04


bootstrap table 多选框分页保留示例代码

在使用bootstrap table的复选框功能的时候,由于采用服务端分页,当在第一页选择了某些数据,然后点击第二页选择一些数据,再次点回第一页,发现原先选择的数据已经清空了,原来的多选框并不支持翻页保留多选数据。

解决思路:

在分页的时候,吧原先选择的数据用一个全局变量保存,当再次翻页回来时,判断当前页数据是否存在于保存的数据数组中,存在则状态为选择。当然当取消选择的时候也要去删除数组中相应的数据。

想直接看示例的点击打开链接

var $table;

var selectionIds = []; //保存选中ids

$(function () {

$table = $("#example1").bootstrapTable({

contentType:"application/x-www-form-urlencoded; charset=UTF-8", //初始化编码

url:'<%=basePath%>/order/queryOrderList',

method: 'post',

striped:true, //奇偶行渐色表

pagination:true, //显示分页

clickToSelect:true, //是否选中

maintainSelected:true,

sidngjWEqnhePagination: "server", //服务端分页

idField:"id",

pageSize: 10,

responseHandler:responseHandler, //在渲染页面数据之前执行的方法,此配置很重要!!!!!!!

columns: [

{field: 'checkStatus',checkbox: true}, //给多选框赋一个field值为“checkStatus”用于更改选择状态!!!!!

{field: 'id',visible:false},

{field: 'orderNumber',title: "订单编号",align:'center',width:'10%'}

]

});

//选中事件操作数组

var union = function(array,ids){

$.each(ids, function (i, id) {

if($.inArray(id,array)==-1){

array[array.length] = id;

}

});

return array;

};

//取消选中事件操作数组

var difference = function(array,ids){

$ngjWEqnh.each(ids, function (i, id) {

var index = $.inArray(id,array);

if(index!=-1){

array.splice(index, 1);

}

});

return array;

};

var _ = {"union":union,"difference":difference};

//绑定选中事件、取消事件、全部选中、全部取消

$table.on('check.bs.table check-all.bs.table uncheck.bs.table uncheck-all.bs.table', function (e, rows) {

var ids = $.map(!$.isArray(rows) ? [rows] : rows, function (row) {

return row.id;

});

func = $.inArray(e.type, ['check', 'check-all']) > -1 ? 'union' : 'difference';

selectionIds = _[func](selectionIds, ids);

});

});

//表格分页之前处理多选框数据

function responseHandler(res) {

$.each(res.rows, function (i, row) {

row.checkStatus = $.inArray(row.id, selectionIds) != -1; //判断当前行的数据id是否存在与选中的数组,存在则将多选框状态变为true

});

return res;

}

原示例中并没有给出union和difference方法,是我自己按着思路实现的。开始并没有实现此功能,后来发现要给checkbox字段加上一个filed字段,并与responseHandler方法中更改的row字段一致,才能实现功能。

以上所述是给大家介绍的bootstrap table 多选框分页保留示例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Bootstrap表单控件学习使用
下一篇:详解Vue2 无限级分类(添加,删除,修改)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~