有时候需要完成这种情况:

1.需要设置的是如果第一页点击复选框然后点击其他页面的话,第一页的选项被保存了

2.将所有选择好的复选款的数据保存在数组中

bootstrap table官方文档http://bootstrap-table.wenzhixin.net.cn/在写之前这个最好看一下

中心思想是:设置两个变量保存选中的数据和对应数据的id,在每次点击分页或者选择复选框的时候都需要根据选择保存到数据中

initialize : function(options) {
this.selections=[];
this.selectionIds=[];//设置一下全局变量,这个表示的是获取每行被选中的id数组
}, render : function() {
var _this = this;
// 创建table节点
this.$table = $("<table>");
this.$el.html(this.$table);
              //注意这里
function responseHandler(res) {
$.each(res.rows, function (i, row) {
row.checkStatus = $.inArray(row.id, this.selectionIds) != -1; //判断当前行的数据id是否存在与选中的数组,存在则将多选框状态变为true
});
return res;
};
// 初始化表格
this.$table.bootstrapTable({
locale : 'zh-CN',
pagination : true,
// 默认表格数据排序字段
sortName : "",
sortOrder : "",
idField:"id",//这里设置以下表示id的变量
pageNumber : _this.tableNum,//这是第几页
pageSize : 10,
pageList : [],
sidePagination : 'server',
maintainSelected:true,
ajax : $request,
url : $request.api + "/patents/query?",
queryParams : function(params) {
params["columns"] = "xxx";
// 是否有附加参数
if ($.isFunction(_this.getQueryParams)) {
params = $.extend(params, _this.getQueryParams());
}
return params;
},
clickToSelect : true,
responseHandler : responseHandler,
columns : [{
field: 'checkStatus',checkbox: true, //给复选框添加一个属性
}, {field: 'id',visible:false},
{
title : '序号',
formatter : function(value, row, index) {
return index + 1;
}
},
}]
});
//通过全部选中数据进行元素获取
this.showCheck();
//获取到全部选中的数据
this.clickget()
return this;
},
clickget:function(){
var mark;
var _this=this;
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);
mark=index;
if(index!=-1){
array.splice(index, 1);
}
});
return array;
};
var unions = function(arrays,rowa){
$.each(rowa, function (i, row) {
if($.inArray(row,arrays)==-1){
arrays[arrays.length] = row;
}
});
return arrays;
};
var differences = function(arrays,rowa){
$.each(rowa, function (i, row) { if(mark!=-1){
arrays.splice(mark, 1);
}
}); return arrays;
};
//绑定选中事件、取消事件、全部选中、全部取消
this.$table.on('check.bs.table check-all.bs.table uncheck.bs.table uncheck-all.bs.table', function (e, rows) {
var _ = {"union":union,"difference":difference};
var aa= {"unions":unions,"differences":differences};
var ids = $.map(!$.isArray(rows) ? [rows] : rows, function (row) {
return row.id;
});
var rowa= $.map(!$.isArray(rows) ? [rows] : rows, function (row) {
return row
});
func = $.inArray(e.type, ['check', 'check-all']) > -1 ? 'union' : 'difference';
funcs = $.inArray(e.type, ['check', 'check-all']) > -1 ? 'unions' : 'differences';
_this.selectionIds = _[func](_this.selectionIds, ids);
_this.selection = aa[funcs](_this.selections, rowa); })
},
showCheck:function(){//当分页点击的时候显示之前的选择
var _this=this;
this.$(".bootstrap-table").on('post-body.bs.table', function () {
for(var i=0;i<_this.selectionIds.length;i++){
_this.$("input[value="+_this.selectionIds[i]+"]").attr("checked",true);
}
});
},

bootstrap table保留多选框的分页的更多相关文章

  1. bootstrap table 保留翻页选中数据

    $(function () { $('#exampleTable').on('uncheck.bs.table check.bs.table check-all.bs.table uncheck-al ...

  2. 前端 | vxe-table 翻页保留复选框状态

    0 前言 在前端开发过程中时常会遇到表格相关的显示与处理.组件库通常都会提供表格组件,对于展示.简单操作这些常用功能通常也够用:但如果需要更多的定制或进行比较复杂的操作,组件库自带的组件可能会捉襟见肘 ...

  3. BootStrap Table显示行号,并且分页后依然递增

    bootStrap table 此处使用的是V1.9.0.在网上百度的方法是: { title: '序号', field: '', formatter: function (value, row, i ...

  4. Bootstrap系列 -- 17. 复选框checkbox和单选择按钮radio

    Bootstrap框架中checkbox和radio有点特殊,Bootstrap针对他们做了一些特殊化处理,主要是checkbox和radio与label标签配合使用会出现一些小问题(最头痛的是对齐问 ...

  5. layui的点击table行选中复选框

    $(document).on("click",".layui-table-body table.layui-table tbody tr",function() ...

  6. elementUITable的多选框:分页选择数据回显,分页保存选中的数据。

    <template> <el-table @selection-change="handleSelectionChange" :row-key="get ...

  7. bootstrap table 复选框选中后,翻页不影响已选中的复选框

    使用的 jquery版本为 2.1.1 在项目中发现bootstrap table的复选框选中后,翻页操作会导致上一页选中的丢失,api中的 bootstrapTable('getSelections ...

  8. BootStrap table使用

    bootstrap table git address https://github.com/wenzhixin/bootstrap-table 引入文件 <link rel="sty ...

  9. 关于复选框input[type=checkbox]

    关于复选框input[type=checkbox],其实在前面的文章中说过一次,当时主要关注点在设置复选框的状态,利用prop实现,今天继续关注一下复选框. 自己在项目中,遇到一个全选/全不选的需求, ...

随机推荐

  1. FreeSql 新功能介绍:贪婪加载五种方法

    前言 FreeSql 在经过6个月的开发和朋友们的工作实践,不断的改进创新,目前拥有1500个左右单元测试方法,且每个方法内又复盖不同的测试面. 今天介绍 FreeSql 各种贪婪加载的姿势,作下总结 ...

  2. limit 检索记录行

    LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数.LIMIT 接受一个或两个数字参数.参数必须是一个整数常量.如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定 ...

  3. 当构造方法参数过多时使用builder模式

    静态工厂和构造方法都有一个限制:它们不能很好地扩展到很多可选参数的情景.请考虑一个代表包装食品上的营养成分标签的例子.这些标签有几个必需的属性——每次建议的摄入量,每罐的份量和每份卡路里 ,以及超过 ...

  4. DHCPv6协议

    DHCPv6协议     1. 定义 IPv6 动态主机配置协议DHCPv6(Dynamic Host Configuration Protocol for IPv6)是针对IPv6编址方案设计,为主 ...

  5. Vue中的指令(听博主说总结的很好)

    指令[重点] 作用:简化Dom操作 参考:https://cn.vuejs.org/v2/api/#%E6%8C%87%E4%BB%A4 特点: 1.都是以v-开头 2.除了插值表达式,其它都写在标签 ...

  6. CCF201612-1 中间数(二分思想)

    问题链接:CCF201612试题. .对n个数进行排序,找出中间那个数,然后将中间那个数的左右与其相等的数去掉,看左右剩下的数个数是否相等,如果相等则中间那个数就是答案,否在输出-1. 问题描述 问题 ...

  7. PHPExcel探索之旅---阶段三 绘制图表

    利用PHPExcel插件进行绘制图表 <?php /** * 使用PHPExcel插件在excel文件中利用其中的数据建立折线图 * */ $dir = dirname(__FILE__); r ...

  8. mysql事务锁表

    -- 查看被锁住的SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; -- 等待锁定SELECT * FROM INFORMATION_SCHEMA.INNO ...

  9. PHP面向对象编程一

    php面向对象编程(一)   类与对象关系: 类就像一个人类的群体 我们从类中实例化一个对象 就像是制定一个人. 面向对象程序的单位就是对象,但对象又是通过类的实例化出来的,所以我们首先要做的就是如何 ...

  10. webpack.config.js====引入Jquery库文件

    1. 安装 cnpm install --save jquery expose-loader 2. 在webpack.config.js中配置 Jquery库是使用的webpack的一个插件Provi ...