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 相关文章推荐
IE6 fixed的完美解决方案
Mar 31 Javascript
JavaScript DOM事件(笔记)
Apr 08 Javascript
javascript制作的简单注册模块表单验证
Apr 13 Javascript
Javascript中的getUTCDay()方法使用详解
Jun 10 Javascript
layer弹出层框架alert与msg详解
Mar 14 Javascript
JS给按钮添加跳转功能类似a标签
May 30 Javascript
jQuery实现简单的计时器功能实例分析
Aug 29 jQuery
JS库 Highlightjs 添加代码行号的实现代码
Sep 13 Javascript
JavaScript中filter的用法实例分析
Feb 27 Javascript
vue 二维码长按保存和复制内容操作
Sep 22 Javascript
React Native项目框架搭建的一些心得体会
May 28 Javascript
详解TypeScript的基础类型
Feb 18 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的类树(支持无限分类)
2006/10/09 PHP
php去除二维数组的重复项方法
2015/11/03 PHP
PHP加密3DES报错 Call to undefined function: mcrypt_module_open() 如何解决
2016/04/17 PHP
一个用js实现控制台控件的代码
2007/09/04 Javascript
Javascript面象对象成员、共享成员变量实验
2010/11/19 Javascript
鼠标事件延时切换插件
2011/03/12 Javascript
js跨浏览器实现将字符串转化为xml对象的方法
2013/09/25 Javascript
浅析JavaScript事件和方法
2015/02/28 Javascript
JavaScript获得指定对象大小的方法
2015/07/01 Javascript
JS实现从连接中获取youtube的key实例
2015/07/02 Javascript
Angularjs 与 bower安装和使用详解
2017/05/11 Javascript
用react-redux实现react组件之间数据共享的方法
2018/06/08 Javascript
vue 1.0 结合animate.css定义动画效果
2018/07/11 Javascript
详解Vue2 添加对scss的支持
2019/01/02 Javascript
使用vue实现HTML页面生成图片的方法
2020/03/12 Javascript
js观察者模式的弹幕案例
2020/11/23 Javascript
js canvas实现五子棋小游戏
2021/01/22 Javascript
[47:31]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.12
2020/12/16 DOTA
Python设计模式之观察者模式简单示例
2018/01/10 Python
Python实现的生成格雷码功能示例
2018/01/24 Python
pycharm中使用anaconda部署python环境的方法步骤
2018/12/19 Python
Python numpy.zero() 初始化矩阵实例
2019/11/27 Python
jupyter notebook插入本地图片的实现
2020/04/13 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
2020/05/22 Python
Django如何继承AbstractUser扩展字段
2020/11/27 Python
python 用pandas实现数据透视表功能
2020/12/21 Python
俄罗斯天然和有机产品、健康生活网上商店:Fitomarket.ru
2020/10/09 全球购物
给排水专业应届生求职信
2013/10/12 职场文书
俄语专业毕业生推荐信
2013/10/28 职场文书
大学生工作推荐信范文
2013/12/02 职场文书
会计专业自荐信
2013/12/02 职场文书
学校清明节活动总结
2014/07/04 职场文书
司法局群众路线教育实践活动整改措施
2014/09/17 职场文书
工程项目合作意向书
2015/05/08 职场文书
go select编译期的优化处理逻辑使用场景分析
2021/06/28 Golang
GO语言异常处理分析 err接口及defer延迟
2022/04/14 Golang