首先给员工显示的表头添加一个checkbox
然后在自动生成的员工信息行的前面也添加一个checkbox
然后完成点击表头的checkbox
进行全选&全不选
//全选&全不选
$("#check_all").click(function () {
/*
* 如果使用attr来获取check的值返回的是undefined
* 用prop获取返回的就是true
* 获取和修改dom原生的属性推荐使用prop,自定义的属性使用attr
* */
$(".checkbox_item").prop("checked",$(this).prop("checked"));
});
还有
checkbox_item
如果全选则check_all
也要选中,反之则不选中
//checkbox_item如果全选则check_all选中,反之则不选中
$(document).on("click",".checkbox_item",function () {
//判断当前选中的元素是否和页面显示的记录条数一致
var flag = $(".checkbox_item:checked").length==$(".checkbox_item").length;
//如果一致则全部选中了,flag为true,表头的checkbox也要变成选中
$("#check_all").prop("checked",flag);
});
这个弄好后就该弄删除了
首先给全选的删除按钮添加一个id
然后给按钮添加点击事件:
//点击全部删除,就批量删除
$("#emp_delete_all_btn").click(function () {
var empName = "";
var del_idstr = "";
//遍历被选中的元素,然后把名字取出来
$.each($(".checkbox_item:checked"),function () {
//组装员工名字字符串,每一个名字用 , 分隔开
empName+=$(this).parents("tr").find("td:eq(2)").text()+",";
//组装员工id的字符串
del_idstr+=$(this).parents("tr").find("td:eq(1)").text()+"-";
});
//去除empName中多余的,
empName = empName.substring(0,empName.length-1);
//去除del_idstr中多余的-
del_idstr = del_idstr.substring(0,del_idstr.length-1);
//确认删除
if (confirm("确认删除"+empName+"吗?")){
//发送ajax请求删除
$.ajax({
url:"${APP_PATH}/emp/"+del_idstr,
type:"DELETE",
success:function (result) {
alert(result.msg);
to_page(currentPage);
}
});
}
});
然后把Controller
层的方法修改为删除单个和删除多个二合一的一个方法:
/*删除员工
单个删除或者批量删除都可以
批量删除:1-2-3这种形式
单个:1
*/
@ResponseBody
@RequestMapping(value = "/emp/{ids}",method = RequestMethod.DELETE)
public Msg deleteEmpById(@PathVariable("ids") String ids){
//如果含有-就是批量删除
if (ids.contains("-")){
List<Integer> del_ids = new ArrayList<>();
String[] strings = ids.split("-");
//组装id的集合
for (String id : strings) {
del_ids.add(Integer.parseInt(id));
}
employeeService.deleteBeath(del_ids);
}else{
//反之则是单个删除
Integer id = Integer.parseInt(ids);
employeeService.deleteEmp(id);
}
return Msg.success();
}
然后到Service
层添加可以删除多个员工的方法deleteBeath()
//批量删除
public void deleteBeath(List<Integer> del_ids) {
EmployeeExample employeeExample = new EmployeeExample();
EmployeeExample.Criteria criteria = employeeExample.createCriteria();
criteria.andEmpIdIn(del_ids);
employeeMapper.deleteByExample(employeeExample);
}
搞定