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 提交值不为空的元素示例代码
May 10 Javascript
javascript页面加载完执行事件代码
Feb 11 Javascript
js+HTML5实现canvas多种颜色渐变效果的方法
Jun 05 Javascript
Jquery zTree 树控件异步加载操作
Feb 25 Javascript
详解JavaScript中基于原型prototype的继承特性
May 05 Javascript
jQuery实现两个select控件的互移操作
Dec 22 Javascript
JavaScript实现树的遍历算法示例【广度优先与深度优先】
Oct 26 Javascript
JavaScript 五大常见函数
Mar 23 Javascript
JS实现匀速与减速缓慢运动的动画效果封装示例
Aug 27 Javascript
vue实现下拉加载其实没那么复杂
Aug 13 Javascript
vue项目配置使用flow类型检查的步骤
Mar 18 Javascript
vue项目中微信登录的实现操作
Sep 08 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使用get_class_methods()函数获取分类的方法
2016/07/20 PHP
PHP如何通过表单直接提交大文件详解
2019/01/08 PHP
javascript实现分栏显示小技巧附图
2014/10/13 Javascript
jquery遍历函数siblings()用法实例
2015/12/24 Javascript
Javascript中的几种继承方式对比分析
2016/03/22 Javascript
jquery.qtip提示信息插件用法简单实例
2016/06/17 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
2016/07/09 Javascript
JS实现问卷星自动填问卷脚本并在两秒自动提交功能
2020/06/17 Javascript
JavaScript实现重力下落与弹性效果的方法分析
2017/12/20 Javascript
vue一个页面实现音乐播放器的示例
2018/02/06 Javascript
vue-router重定向不刷新问题的解决
2018/06/25 Javascript
微信小程序实现圆形进度条动画
2020/11/18 Javascript
Vue使用lodop实现打印小结
2019/07/06 Javascript
python虚拟环境 virtualenv的简单使用
2020/01/21 Javascript
three.js显示中文字体与tween应用详析
2021/01/04 Javascript
[53:43]VP vs NewBee Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
python多线程threading.Lock锁用法实例
2014/11/01 Python
Python3学习笔记之列表方法示例详解
2017/10/06 Python
Python模块汇总(常用第三方库)
2019/10/07 Python
python 读写文件包含多种编码格式的解决方式
2019/12/20 Python
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
意大利专业化妆品品牌:KIKO MILANO
2017/02/01 全球购物
Shell如何接收变量输入
2016/08/06 面试题
护理专业毕业生自荐信范文
2014/01/05 职场文书
重大事项社会稳定风险评估方案
2014/06/15 职场文书
新手上路标语
2014/06/20 职场文书
火锅店的活动方案
2014/08/15 职场文书
教师纪念9.18事件演讲稿范文
2014/09/14 职场文书
房屋买卖委托书格式范本格式
2014/10/13 职场文书
匿名检举信范文
2015/03/02 职场文书
离婚起诉书范文2015
2015/05/19 职场文书
2015年秋季校长开学典礼致辞
2015/07/29 职场文书
幼儿园小朋友毕业感言
2015/07/30 职场文书
旅行社计调工作总结
2015/08/12 职场文书
祝福语集锦:送给闺蜜的生日祝福语
2019/10/08 职场文书
python爬取企查查企业信息之selenium自动模拟登录企查查
2021/04/08 Python