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

解决思路:
在分页的时候,吧原先选择的数据用一个全局变量保存,当再次翻页回来时,判断当前页数据是否存在于保存的数据数组中,存在则状态为选择。当然当取消选择的时候也要去删除数组中相应的数据。
为了解决这个问题,在查github上查文档发现有人提出了这个问题,并且作者wenzhixin 也编写了相应的例子来演示,想看原问题的点击打开链接。
想直接看示例的点击打开链接
原示例是使用html方式来实现的表格,并使用服务端分页。并且相关js方法并不完善,我也踩了很多坑,所以本博客在原作者编写的示例的基础上,做了相关更改,在此展示和说明:
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,
sidePagination: "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){
$.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 多选框分页保留示例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# bootstrap
# 多选框
# table
# Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
# bootstrap table之通用方法( 时间控件
# 导出
# 动态下拉框
# 表单验证
# 选中与获取信息)代码分享
# bootstrap制作jsp页面(根据值让table显示选中)
# BootStrap Table复选框默认选中功能的实现代码(从数据库获取到对应的状态进行判断是否为选
# 分页
# 多选
# 服务端
# 在此
# 第一页
# 翻页
# 小编
# 是否存在
# 组中
# 我也
# 基础上
# 这个问题
# 要去
# 提出了
# 给大家
# 很重要
# 写了
# 想看
# 要给
# 并与
相关文章:
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
微信小程序 五星评分(包括半颗星评分)实例代码
建站主机选哪种环境更利于SEO优化?
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
如何有效防御Web建站篡改攻击?
常州企业网站制作公司,全国继续教育网怎么登录?
如何选择域名并搭建高效网站?
如何设计高效校园网站?
清除minerd进程的简单方法
洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?
想学网站制作怎么学,建立一个网站要花费多少?
专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?
香港网站服务器数量如何影响SEO优化效果?
如何通过虚拟机搭建网站?详细步骤解析
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
已有域名和空间,如何快速搭建网站?
如何高效配置香港服务器实现快速建站?
网站制作员失业,怎样查看自己网站的注册者?
成都网站制作报价公司,成都工业用气开户费用?
C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
高防服务器租用首荐平台,企业级优惠套餐快速部署
如何在IIS管理器中快速创建并配置网站?
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
头像制作网站在线制作软件,dw网页背景图像怎么设置?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
行程制作网站有哪些,第三方机票电子行程单怎么开?
建站之星安装后如何自定义网站颜色与字体?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
建站之星会员如何解锁更多建站功能?
定制建站策划方案_专业建站与网站建设方案一站式指南
太原网站制作公司有哪些,网约车营运证查询官网?
如何在西部数码注册域名并快速搭建网站?
如何通过西部建站助手安装IIS服务器?
制作公司内部网站有哪些,内网如何建网站?
建站之星微信建站一键生成小程序+多端营销系统
建站之星ASP如何实现CMS高效搭建与安全管理?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
创业网站制作流程,创业网站可靠吗?
c# 在ASP.NET Core中管理和取消后台任务
已有域名如何免费搭建网站?
天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?
,有什么在线背英语单词效率比较高的网站?
湖州网站制作公司有哪些,浙江中蓝新能源公司官网?
攀枝花网站建设,攀枝花营业执照网上怎么年审?
浅析上传头像示例及其注意事项
Swift开发中switch语句值绑定模式
如何获取上海专业网站定制建站电话?
*请认真填写需求信息,我们会在24小时内与您取得联系。