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 相关文章推荐
ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
Feb 03 Javascript
jQuery实现倒计时按钮功能代码分享
Sep 03 Javascript
JavaScript中的无阻塞加载性能优化方案
Oct 10 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
Jun 10 Javascript
在JavaScript中操作时间之getYear()方法的使用教程
Jun 11 Javascript
jquery实现点击展开列表同时隐藏其他列表
Aug 10 Javascript
JS+CSS实现简易的滑动门效果代码
Sep 24 Javascript
vue将对象新增的属性添加到检测序列的方法
Feb 24 Javascript
深入浅析Vue.js计算属性和侦听器
May 05 Javascript
深入浅析javascript函数中with
Oct 28 Javascript
vue项目中使用bpmn为节点添加颜色的方法
Apr 30 Javascript
如何将JavaScript将数组转为树形结构
Jun 02 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函数strip_tags的一个bug浅析
2014/05/22 PHP
PHP读取汉字的点阵数据
2015/06/22 PHP
php自动加载方式集合
2016/04/04 PHP
PHP文件上传、客户端和服务器端加限制、抓取错误信息、完整步骤解析
2017/01/12 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
有关DOM元素与事件的3个谜题
2010/11/11 Javascript
jQuery实用基础超详细介绍
2013/04/11 Javascript
Javascript delete 引用类型对象
2013/11/01 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
2015/09/27 Javascript
js实现新浪微博首页效果
2015/10/16 Javascript
使用Node.js处理前端代码文件的编码问题
2016/02/16 Javascript
jQuery添加options点击事件并传值实例代码
2016/05/18 Javascript
AngularJS中的包含详细介绍及实现示例
2016/07/28 Javascript
浅谈JavaScript的innerWidth与innerHeight
2017/10/12 Javascript
获取本机IP地址的实例(JavaScript / Node.js)
2017/11/24 Javascript
js保留两位小数方法总结
2018/01/31 Javascript
js input输入百分号保存数据库失败的解决方法
2018/05/26 Javascript
vue 中引用gojs绘制E-R图的方法示例
2018/08/24 Javascript
详解Vue-Router源码分析路由实现原理
2019/05/15 Javascript
使用react context 实现vue插槽slot功能
2019/07/18 Javascript
vue使用map代替Aarry数组循环遍历的方法
2020/04/30 Javascript
Python字符串拼接六种方法介绍
2017/12/18 Python
python奇偶行分开存储实现代码
2018/03/19 Python
浅析PHP与Python进行数据交互
2018/05/15 Python
python判断字符串或者集合是否为空的实例
2019/01/23 Python
python读取.mat文件的数据及实例代码
2019/07/12 Python
flask框架自定义url转换器操作详解
2020/01/25 Python
关于Theano和Tensorflow多GPU使用问题
2020/06/19 Python
肯尼亚网上商城:Kilimall
2016/08/20 全球购物
Farah官方网站:男士服装及配件
2019/11/01 全球购物
PHP两种查询函数array/row的区别
2013/06/03 面试题
医药营销专业个人自荐信
2013/09/29 职场文书
机电专业大学生求职信
2013/10/04 职场文书
办公室文员工作职责
2014/01/31 职场文书
井冈山红色之旅感想
2014/10/07 职场文书
2015大学生求职信范文
2015/03/20 职场文书