本来bt是有自己的获取选中方法的,但是,它只会返回数据,并不会返回index
具体用法如下
var selectRows = $("#tb_data").bootstrapTable('getSelections')
网上还有一个getAllSelections的参数,但是我的bootstrap-table.js中并没有这个参数,官网下载的版本也没有,建议大家不要用了。
去查了一个getSelections这个方法,它其实就是遍历表格数据,去找第一列也就是复选框列的值是不是true,是true就说明被选中了,然后给你把数据返回。
源码:
key: "getSelections",
value: function getSelections() {
var _this18 = this;
return (this.options.maintainMetaData ? this.options.data : this.data).filter(function (row) {
return row[_this18.header.stateField] === true;
});
}
我本来想着改一下源码,如果是true的话就给这个row加一个index的属性,把行号存进去就行了。
结果报错,估计这里是返回bool类型,不让我做其他的赋值操作;
既然都是遍历,那我自己遍历也是一样的,只要查找每一行的第一列数据是不是true就行了
function getSelections(tableID){
var indexs = [];
var selectCount = $("#"+tableID).bootstrapTable('getData',false);
for(s in selectCount){
if(selectCount[s]['0']) //这个0是第一列数据的属性值,调用的属性如果是数字的话需要写成obj['i']
indexs.push(s);
}
return indexs;
}
这样就可以返回所有选中的index
更多推荐
bootstrap-table获取所有选中行数据index
发布评论