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


Posted in Javascript onMarch 08, 2017

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

解决思路:

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

为了解决这个问题,在查github上查文档发现有人提出了这个问题,并且作者wenzhixin 也编写了相应的例子来演示,想看原问题的点击打开链接。

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

原示例是使用html方式来实现的表格,并使用服务端分页。并且相关js方法并不完善,我也踩了很多坑,所以本博客在原作者编写的示例的基础上,做了相关更改,在此展示和说明:

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, 
 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 多选框分页保留示例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Convert Seconds To Hours
Jun 16 Javascript
Prototype中dom对象方法汇总
Sep 17 Javascript
Extjs中常用表单介绍与应用
Jun 07 Javascript
JQuery UI DatePicker中z-index默认为1的解决办法
Sep 28 Javascript
jquery的index方法实现tab效果
Feb 16 Javascript
jQuery实现商品活动倒计时
Oct 16 Javascript
jQuery实现简洁的轮播图效果实例
Sep 07 Javascript
js获取地址栏参数的两种方法
Jun 27 Javascript
加载 vue 远程代码的组件实例详解
Nov 20 Javascript
解决vuejs 使用value in list 循环遍历数组出现警告的问题
Sep 26 Javascript
JS可断点续传文件上传实现代码解析
Jul 30 Javascript
解决Antd 里面的select 选择框联动触发的问题
Oct 24 Javascript
JS仿JQuery选择器功能
Mar 08 #Javascript
vue数据双向绑定原理解析(get &amp; set)
Mar 08 #Javascript
footer定位页面底部(代码分享)
Mar 07 #Javascript
vue父子组件的数据传递示例
Mar 07 #Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
Mar 07 #Javascript
完美实现js焦点轮播效果(一)
Mar 07 #Javascript
Vue2.0组件间数据传递示例
Mar 07 #Javascript
You might like
深入PHP异步执行的详解
2013/06/03 PHP
orm获取关联表里的属性值
2016/04/17 PHP
基于JQuery的类似新浪微博展示信息效果的代码
2012/07/23 Javascript
jquery实现图片等比例缩放以及max-width在ie中不兼容解决
2013/03/21 Javascript
jquery.form.js用法之清空form的方法
2014/03/07 Javascript
weex里Vuex state使用storage持久化详解
2017/09/09 Javascript
Three.js加载外部模型的教程详解
2017/11/10 Javascript
解析vue中的$mount
2017/12/21 Javascript
vuex管理状态 刷新页面保持不被清空的解决方案
2019/11/11 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
2020/02/06 Javascript
js 图片懒加载的实现
2020/10/21 Javascript
用python 制作图片转pdf工具
2015/01/30 Python
Python中操作文件之write()方法的使用教程
2015/05/25 Python
python统计日志ip访问数的方法
2015/07/06 Python
python学习之编写查询ip程序
2016/02/27 Python
Python和Perl绘制中国北京跑步地图的方法
2016/03/03 Python
Python操作MySQL模拟银行转账
2018/03/12 Python
基于python 爬虫爬到含空格的url的处理方法
2018/05/11 Python
Python数据分析:手把手教你用Pandas生成可视化图表的教程
2018/12/15 Python
如何用Python破解wifi密码过程详解
2019/07/12 Python
Python Opencv轮廓常用操作代码实例解析
2020/09/01 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
2020/09/29 Python
CSS3+js实现简单的时钟特效
2015/03/18 HTML / CSS
美国顶级水上运动专业店:Marine Products
2018/04/15 全球购物
世界上最好的旅行夹克:BauBax
2018/12/23 全球购物
英国领先的在线旅游和休闲零售商:lastminute.com
2019/01/23 全球购物
HomeAway英国:全球领先的度假租赁在线市场
2020/02/03 全球购物
艺术爱好者的自我评价分享
2013/10/08 职场文书
中专毕业生自荐信
2013/11/16 职场文书
保险内勤岗位职责
2014/04/05 职场文书
个人工作表现评语
2014/04/30 职场文书
毕业生银行实习自我鉴定
2014/10/14 职场文书
2014年社团工作总结范文
2014/11/27 职场文书
2014年管理人员工作总结
2014/12/01 职场文书
农民工工资支付承诺书
2015/05/04 职场文书
Java实现注册登录跳转
2022/06/16 Java/Android