1.按钮标签
<button class="layui-btn" data-type="getCheckData" >批量删除<span class="layui-badge " id="checkedNum">0</span></button>
2.js代码
getCheckData: function () {
//获取选中的数据
var checkStatus = table.checkStatus('videoTable'),
data = checkStatus.data;
if (data == "") {
layer.msg("至少要选一个", {icon: 2});
return;
}
//用一个数组来存储要删除的Id值
var ids = "";
if (data.length > 0) {
var l = data.length;
for (var i = 0; i < l; i++) {
ids += data[i].id + ",";
}
}
//在批量删除最后一页全删之后会显示无数据,所以判断一下是否在最后一页,是否全删除,全删除以后跳转到前一页
//获取当前页码
var currPage = $(".layui-laypage-skip").find("input").val()
//获取分页数据条数
var pageInfo = $(".layui-laypage-limits").find("option:selected").val()
//获取总数据条数
var recodeCount = $(".layui-laypage-count").text();
var recodeCount = recodeCount.replace(/[^0-9]/ig,"");
//获取总页数
var totalPageNum = Math.ceil(recodeCount/pageInfo);
//获取最后一页的数据条数
var lastNum = recodeCount%pageInfo;
layer.confirm('确定删除所选的'+l +'个选项吗?', function (index) {
$.ajax({
type: 'post',
url: "video/deleteMany.do",
data: {"ids": ids},
dataType: 'json',
success: function (data) {
if (data.code === 0) {
layer.msg('删除成功', {icon: 1});
//当前所在的页码,在最后一页并且全部删除时
if (totalPageNum == currPage && (pageInfo == l||lastNum == l)) {
table.reload('videoTable',{page:{curr:currPage - 1}})
} else{
$(".layui-laypage-btn").click()
}
} else {
layer.msg('删除失败');
}
},
'error': function () {
layer.msg('系统错误');
}
})
})
}
};
//.searchDiv为包裹批量删除标签的div的class属性
$('.searchDiv .layui-btn ').on('click', function(){
var type = $(this).data('type');
active[type] ? active[type].call(this) : '';
});
//实时显示要删除的条数,test为lay-filter,table标签中的
table.on('checkbox(test)', function(obj){
var checkStatus = table.checkStatus('videoTable'),
data = checkStatus.data;
$("#checkedNum").html(data.length);
});
3.Controller层
@RequestMapping("/deleteMany.do")
public JsonResult deleteMany(Integer[] ids){
videoService.deleteMany(ids);
JsonResult jsonResult = new JsonResult(0,null);
return jsonResult;
}
4.mapper层
<delete id="deleteMany" parameterType="map">
delete from video where id in
<foreach collection="array" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</delete>