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 相关文章推荐
js获得鼠标的坐标值的方法
Mar 13 Javascript
JavaScript中消除闭包的一般方法介绍
Mar 16 Javascript
jquery实现鼠标滑过后动态图片提示效果实例
Aug 10 Javascript
深入浅析同源策略和跨域访问
Nov 26 Javascript
探讨JavaScript语句的执行过程
Jan 28 Javascript
node.js实现爬虫教程
Aug 25 Javascript
jquery实现一个简单的表单验证实例
Mar 30 Javascript
jQuery+ajax+asp.net获取Json值的方法
Jun 08 Javascript
javascript设置文本框光标的方法实例小结
Nov 04 Javascript
浅谈vue中慎用style的scoped属性
Nov 28 Javascript
JS隐藏号码中间4位代码实例
Apr 09 Javascript
JS前端使用Canvas快速实现手势解锁特效
Sep 23 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
Laravel 简单实现Ajax滚动加载示例
2019/10/22 PHP
js+css在交互上的应用
2010/07/18 Javascript
JavaScript中的style.display属性操作
2013/03/27 Javascript
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
jquery 利用show和hidden实现级联菜单示例代码
2013/08/09 Javascript
Javascript脚本实现静态网页加密实例代码
2013/11/05 Javascript
jQuery EasyUI 组件加上“清除”功能实例详解
2017/04/11 jQuery
ES6中javascript实现函数绑定及类的事件绑定功能详解
2017/11/08 Javascript
vue+element-ui集成随机验证码+用户名+密码的form表单验证功能
2018/08/05 Javascript
nodejs文件夹深层复制功能
2019/09/03 NodeJs
Node.js 实现抢票小工具 &amp; 短信通知提醒功能
2019/10/22 Javascript
Element Notification通知的实现示例
2020/07/27 Javascript
JavaScript前端开发时数值运算的小技巧
2020/07/28 Javascript
详解python发送各类邮件的主要方法
2016/12/22 Python
Python3学习笔记之列表方法示例详解
2017/10/06 Python
Jupyter notebook远程访问服务器的方法
2018/05/24 Python
Python Django框架单元测试之文件上传测试示例
2019/05/17 Python
python实现websocket的客户端压力测试
2019/06/25 Python
Python把图片转化为pdf代码实例
2020/07/28 Python
python pymysql库的常用操作
2020/10/16 Python
pycharm远程连接服务器并配置python interpreter的方法
2020/12/23 Python
用CSS3将你的设计带入下个高度
2009/08/08 HTML / CSS
expedia比利时:预订航班+酒店并省钱
2018/07/13 全球购物
沙特阿拉伯家用电器和电子产品购物网站:Sheta and Saif
2020/04/03 全球购物
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
2013/04/28 面试题
办公室文秘自我评价
2013/09/21 职场文书
技校教师求职简历的自我评价
2013/10/20 职场文书
置业顾问岗位职责
2014/03/02 职场文书
驾驶员培训方案
2014/05/01 职场文书
竞选班干部演讲稿500字
2014/08/20 职场文书
工资收入证明样本(5篇)
2014/09/16 职场文书
“向国旗敬礼”活动策划方案(4篇)
2014/09/27 职场文书
乡镇防汛工作汇报
2014/10/28 职场文书
2014年发展党员工作总结
2014/11/12 职场文书
导游词之南京汤山温泉
2019/11/26 职场文书
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python