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 相关文章推荐
从零开始学习jQuery (六) jquery中的AJAX使用
Feb 23 Javascript
javascript 密码框防止用户粘贴和复制的实现代码
Feb 17 Javascript
js解决select下拉选不中问题
Oct 14 Javascript
jQuery中:first-child选择器用法实例
Dec 31 Javascript
浅析javascript中的DOM
Mar 01 Javascript
PHP 数组current和next用法分享
Mar 05 Javascript
详解JavaScript异步编程中jQuery的promise对象的作用
May 03 Javascript
javascript淘宝主图放大镜功能
Oct 20 Javascript
基于JS实现的随机数字抽签实例
Dec 08 Javascript
vue配置多页面的实现方法
May 22 Javascript
JS数组属性去重并校验重复数据
Jan 10 Javascript
es6函数之尾调用优化实例分析
Apr 25 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
2020年4月放送决定!第2期TV动画《邪神酱飞踢》视觉图&主题曲情报公开!
2020/03/06 日漫
IE和Firefox下javascript的兼容写法小结
2008/12/10 Javascript
js计算页面刷新的次数
2009/07/20 Javascript
超简单的jquery的AJAX用法
2010/05/10 Javascript
通过jquery的$.getJSON做一个跨域ajax请求试验
2011/05/03 Javascript
JS获取html对象的几种方式介绍
2013/12/05 Javascript
jquery实现焦点图片随机切换效果的方法
2015/03/12 Javascript
JavaScript使用pop方法移除数组最后一个元素用法实例
2015/04/06 Javascript
javascript事件委托的方式绑定详解
2015/06/10 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
基于JavaScript实现瀑布流效果(循环渐近)
2016/01/27 Javascript
bootstrap 表单验证使用方法
2017/01/11 Javascript
详解vue嵌套路由-query传递参数
2017/05/23 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
《javascript少儿编程》location术语总结
2018/05/27 Javascript
微信小程序实现图片上传放大预览删除代码
2020/06/28 Javascript
微信小程序后台持续定位功能使用详解
2019/08/23 Javascript
js实现录音上传功能
2019/11/22 Javascript
vue 将多个过滤器封装到一个文件中的代码详解
2020/09/05 Javascript
Python中用于转换字母为小写的lower()方法使用简介
2015/05/19 Python
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
python 输出上个月的月末日期实例
2018/04/11 Python
python binascii 进制转换实例
2019/06/12 Python
在Python中构建增广矩阵的实现方法
2019/07/01 Python
python协程gevent案例 爬取斗鱼图片过程解析
2019/08/27 Python
Python新手学习标准库模块命名
2020/05/29 Python
tensorflow之读取jpg图像长和宽实例
2020/06/18 Python
Numpy(Pandas)删除全为零的列的方法
2020/09/11 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
2020/12/16 Python
浅谈css3中calc在less编译时被计算的解决办法
2017/12/04 HTML / CSS
泰国最新活动和优惠:Megatix
2020/05/07 全球购物
物流管理应届生求职信
2013/11/07 职场文书
《十六年前的回忆》教学反思
2014/02/14 职场文书
四年大学自我鉴定
2014/02/17 职场文书
建筑工程技术专业求职信
2014/07/16 职场文书
营销策划分析:怎么策划才能更好销量产品?
2019/09/04 职场文书