bootstrap table 复选框选中后,翻页不影响已选中的复选框
使用的 jquery版本为 2.1.1
在项目中发现bootstrap table的复选框选中后,翻页操作会导致上一页选中的丢失,api中的 bootstrapTable('getSelections'); 只能拿到当前页的复选框。
js - 表格初始化
$(function(){
$('#res_table').bootstrapTable({
url : '${path}/res/listData',
contentType : "application/x-www-form-urlencoded",
method : 'post',
sortable: true,
dataType : 'json',
toolbar : '#toolbar',
striped : true,
cache : false,
pagination : true,
sidePagination : "server", //服务端分页
pageNumber : 1,
pageSize : 10,
pageList : [ 10, 20, 30, 40 ], //可供选择的每页的行数(*)
strictSearch : true,
showColumns : true,
showRefresh : true,
minimumCountColumns : 2,
clickToSelect : true, //是否启用点击选中行
uniqueId : "ID",
showToggle : true,
cardView : false,
detailView : false, //是否显示父子表
maintainSelected : true,
columns :[
{
align : 'center',
checkbox: true, // 显示复选框
formatter: function (i,row) { // 每次加载 checkbox 时判断当前 row 的 id 是否已经存在全局 Set() 里
if($.inArray(row.id,Array.from(overAllIds))!=-1){ // 因为 Set是集合,需要先转换成数组
return {
checked : true // 存在则选中
}
}
}
},{
field : 'code',
align : 'left',
title : '资源编码'
},{
field : 'name',
align : 'left',
title : '资源名称'
},{
field : 'type',
align : 'left',
title : '资源类型',
}
]
});//表格结束
当表格选中或取消选中时
$('#res_table').on('uncheck.bs.table check.bs.table check-all.bs.table uncheck-all.bs.table',function(e,rows){
var datas = $.isArray(rows) ? rows : [rows]; // 点击时获取选中的行或取消选中的行
examine(e.type,datas); // 保存到全局 Set() 里
});
//初始化结束
});
bootstrap table api 选中事件的 jquery 方法

js方法
var overAllIds = new Set(); // 全局保存选中行的对象
function examine(type,datas){ // 操作类型,选中的行
if(type.indexOf('uncheck')==-1){
$.each(datas,function(i,v){ // 如果是选中则添加选中行的 id
overAllIds.add(v.id);
});
}else{
$.each(datas,function(i,v){
overAllIds.delete(v.id); // 删除取消选中行的 id
});
}
}
如果是删除操作需要把 Set() 对象先转换为数组!
如果使用 Array()
<script type="text/javascript">
$(function(){ $('#res_table').bootstrapTable({
url:'${path}/role/resourceData',
search : true,
toolbar : '#toolbar', //工具栏
sortable: true, //开启排序
cache : false,
striped : true,
singleSelect : false,
locale : 'zh-CN',
sidePagination : "server",
clickToSelect : true, //是否启用点击选中行
pagination : true,
maintainSelected : true, //如果是客户端分页,这个设为 true 翻页后已经选中的复选框不会丢失
pageSize : 10,
pageNumber : 1,
pageList: [10, 20, 30, 40],
showRefresh : true, //是否显示刷新按钮 columns :[
{
checkbox: true, // 显示复选框
formatter: function (i,row) { // 每次加载 checkbox 时判断当前 row 的 id 是否已经存在全局 Set() 里
if($.inArray(row.id,overAllIds)!=-1){// 因为 判断数组里有没有这个 id
return {
checked : true // 存在则选中
}
}
}
},{
field : 'code',
align : 'left',
title : '资源编码',
sortable: true
},{
field : 'name',
align : 'left',
title : '资源名称',
},{
field : 'type',
align : 'left',
title : '资源类型',
}
]
}); $('#res_table').on('uncheck.bs.table check.bs.table check-all.bs.table uncheck-all.bs.table',function(e,rows){
var datas = $.isArray(rows) ? rows : [rows]; // 点击时获取选中的行或取消选中的行
examine(e.type,datas); // 保存到全局 Array() 里
}); });
var overAllIds = new Array(); //全局数组 function examine(type,datas){
if(type.indexOf('uncheck')==-1){
$.each(datas,function(i,v){
// 添加时,判断一行或多行的 id 是否已经在数组里 不存则添加
overAllIds.indexOf(v.id) == -1 ? overAllIds.push(v.id) : -1;
});
}else{
$.each(datas,function(i,v){
overAllIds.splice(overAllIds.indexOf(v.id),1); //删除取消选中行
});
}
//console.log(overAllIds);
}
</script>
bootstrap table 复选框选中后,翻页不影响已选中的复选框的更多相关文章
- easyUI datagrid中checkbox选中事件以及行点击事件,翻页之后还可以选中
DataGrid其中与选择,勾选相关 DataGrid属性:singleSelect boolean 如果为true,则只允许选择一行. false ctrlSelect boolean 在启用多行选 ...
- vue table中使用多选的问题(翻页后如何保存已选项),联动echarts图表实现流量监控
流量监控项目需求: 根据表格数据,添加多选功能,默认全选,根据已选项更新图表视图 1.表格需要多选 2.要联动图表,所以关键是要利用表格多选的触发回调函数 vue table中使用多选: 很简单,只需 ...
- Bootstrap Table 中文文档(完整翻译版)
表格参数: 名称 标签 类型 默认 描述 - data-toggle String ‘table’ 不用写 JavaScript 直接启用表格. classes data-classes String ...
- elementUI 列表里面含有多选框,当翻页的时候依然保持之前页多选不变
el-table的type="selection"的使用 场景:el-table,type="selection"时,重新请求后,设置列表更新前的已勾选项 踩坑 ...
- 实现GridView翻页并且实现CheckBox选中功能的保持
在GridView与数据库进行绑定后,由得到的数据记录可能有许多条,以至一个页面无法容纳,这时需要进行多页显. 要实现分页显现,只要使用分页类 "PagedDataSource" ...
- Webdriver控制翻页控件,并实现向前向后翻页功能,附上代码,仅供参考,其他类似日期控件的功能可以自己封装
新增输入与选择页面的html源码: <div style="margin-top:-60px;" class="modal-content" id=&qu ...
- ABP+AdminLTE+Bootstrap Table权限管理系统第九节--AdminLTE模板页搭建
AdminLTE 官网地址:https://adminlte.io/themes/AdminLTE/index2.html 首先去官网下载包下来,然后引入项目. 然后我们在web层添加区域Admin以 ...
- c#中RadioButtonList选中后不整体刷新页面保持选中状态
c#中用asp的RadioButtonList控件总会遇到选中了,然后跟着就刷新整体页面,又变为没有选中状态. <%@ Page Language="C#" AutoEven ...
- 前端 | vxe-table 翻页保留复选框状态
0 前言 在前端开发过程中时常会遇到表格相关的显示与处理.组件库通常都会提供表格组件,对于展示.简单操作这些常用功能通常也够用:但如果需要更多的定制或进行比较复杂的操作,组件库自带的组件可能会捉襟见肘 ...
随机推荐
- python笔记_查看函数调用栈的一个小技巧
一.背景 最近在看一个开源框架的源码,涉及到的内容非常杂乱,有的函数不知道是在什么时候被谁给调用了?调用的时候传入了什么参数?为了解决这个问题,写了一个小的装饰器. 二.实现 这个装饰器函数主要参考了 ...
- 坐标转换——GCJ-02
WGS84(World Geodetic System 1984),是为GPS 全球定位系统 使用而建立的坐标系统GCJ-02,我国在WGS84的基础上加密得到BD-09,百度坐标在GCJ-02基础上 ...
- 【Android开发日记】之基础篇(二)——Android的动画效果
什么是动画,动画的本质是通过连续不断地显示若干图像来产生“动”起来的效果.比如说一个移动的动画,就是在一定的时间段内,以恰当的速率(起码要12帧/秒以上,才会让人产生动起来的错觉)每隔若干 ...
- linux命令(23):cp命令
实例一:复制单个文件到目标目录 cp 1.log /home 说明: 1.在没有带-a参数时,两个文件的时间是不一样的.在带了-a参数时,两个文件的时间是一致的. 2.当目标文件已存在,会询问是否覆盖 ...
- jps命令学习
jps命令学习 标签(空格分隔): jvm jps介绍 ( JVM Process Status Tool ) 网文 jps命令用于查看当前Java进程及其pid等相关信息,同ps -ef | gre ...
- 《逐梦旅程 WINDOWS游戏编程之从零开始》笔记5——Direct3D中的顶点缓存和索引缓存
第12章 Direct3D绘制基础 1. 顶点缓存 计算机所描绘的3D图形是通过多边形网格来构成的,网网格勾勒出轮廓,然后在网格轮廓的表面上贴上相应的图片,这样就构成了一个3D模型.三角形网格是构建物 ...
- 兼容python3的SSDB客户端
SSDB.py import socket class SSDB_Response(object): def __init__(self, code='', data_or_message=None) ...
- mocha测试es6问题
平时在写完正常的逻辑代码后,需要使用单元测试去测试逻辑代码,现在比较流行的是使用mocha进行测试 现在都是使用es6的写法,如果直接使用mocha test\某个文件,会出现下面的错误,原因是因为m ...
- python 正则匹配中文(unicode)(转)
由于 需求原因,需要匹配 提取中文,大量google下,并没有我需要的.花了一个小时大概测试,此utf8中文通过,特留文. 参考: http://hi.baidu.com/nivrrex/blo ...
- LOJ #6278. 数列分块入门 2-分块(区间加法、查询区间内小于某个值x的元素个数)
#6278. 数列分块入门 2 内存限制:256 MiB时间限制:500 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: hzwer 提交提交记录统计测试数据讨论 6 题目描述 给出 ...