bootstrap table插件的分页与checkbox使用详解
程序员文章站
2022-11-26 16:36:26
今天需要实现这样一个功能,有checkbox列表可供选择,要选择不分页之间的行并保存
最终实现的功能如图:(图片来自网上)
具体实现
首先,来看具体的代...
今天需要实现这样一个功能,有checkbox列表可供选择,要选择不分页之间的行并保存
最终实现的功能如图:(图片来自网上)
具体实现
首先,来看具体的代码,这里只截取实现功能所需代码
var selectionids =[],selectionnames=[]; var curd = { init:function(){ this._getcheckparam(); }, /** * 初始化 * @private */ /** * 表格操作 */ //表格分页之前处理多选框数据 _responsehandler:function()(res) { $.each(res.rows, function (i, row) { row.checkstatus = $.inarray(row.id, selectionids) != -1; //判断当前行的数据id是否存在与选中的数组,存在则将多选框状态变为true }); return res; }, _list:function(){ var _this = this var settings = { url:path.searchurl, method:'get', responsehandler:_this.responsehandler, //在渲染页面数据 之前执行的方法 height:path.tbheight }; bstable.inittable("#boostraptable",settings); // 其它的boostraptable参数已经封装在bstable里面了,这里就不贴出来了 }, /** * 获取选中id * @returns {*} * @private */ _getidselections:function() { // 用map进行过滤 return $.map($('#bootstraptable').bootstraptable('getselections'), function (row) { return row.id }); }, /** * 获取选中对象并显示 * @private */ _getcheckparam:function(){ 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}; var $table=$('#bootstraptable'); //绑定选中事件、取消事件、全部选中、全部取消 $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; }); var names = $.map(!$.isarray(rows) ? [rows] : rows, function (row) { return row.name; }); func = $.inarray(e.type, ['check', 'check-all']) > -1 ? 'union' : 'difference'; selectionids = _[func](selectionids, ids); selectionnames =_[func](selectionnames,names); }); } }; return curd; });
比较常用的技巧
使用boostraptable时候,选择表格的行,返回的rows有很多,这时候需要过滤出我们需要的字段,可以用
function getidselections() { return $.map($table.bootstraptable('getselections'), function (row) { return row.id // 想返回什么字段就换成什么 }); }
当然,如果需要对选出的数据有限制筛选,用filter过滤也不错
var arr = [1,2,3,4,5,4,3,2,1]; var filterresult = arr.filter(function(item,index,array){ return (item>2); }); console.log(filterresult); //[3,4,5,4,3],返回所有数值都大于2的一个数组
相关讨论
如果想了解更多细节,可以看看github上的issue
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
bootstrap中日历范围选择插件daterangepicker的使用详解
-
bootstrap table表格插件使用详解
-
bootstrap table插件的分页与checkbox使用详解
-
基于Metronic的Bootstrap开发框架经验总结(18)-- 在代码生成工具Database2Sharp中集成对Bootstrap-table插件的分页及排序支持
-
Spring data jpa的使用与详解(复杂动态查询及分页,排序)
-
bootstrap中日历范围选择插件daterangepicker的使用详解
-
bootstrap paginator分页插件的两种使用方式实例详解
-
bootstrap table表格插件使用详解
-
django项目中使用bootstrap插件的分页功能。
-
Mybatis分页插件PageHelper的学习与使用