需求: 我们选择好要删除的几条数据,之后按删除按钮,那么就可以删除
前端删除按钮的标签是
代码语言:javascript复制<div id="datagridtoorbar">
<a href="javascript:void(0)" >添加</a>
<a href="javascript:void(0)" >删除</a>
</div>
需要在script里面给这个标签加一个事件,一点击这个按钮,就会获得所选择数据的id 获取复选框数据的id ,将id传到后端
代码语言:javascript复制一点击这个删除按钮,就触发
$('#datagridtoorbar>a:contains(删除)').linkbutton({
iconCls:"icon-remove",
onClick:function () {
// 获得被选中的行
// 先获取整个列表,之后用easyui里面的datagrid,这个里面有一个方法getChecked
var datagrid = $("#datagridpersion").datagrid("getChecked");
//getChecked 方法的返回值是选择中的当前行Jason数据列表
//获得所有的被选中的id
var param ="";
for(var i=0;i<datagrid.length;i ){
var id=datagrid[i].id;
if(i==0){
param=param "id=" id;
}else {
param=param "&id=" id;
}
}
console.log(typeof param);
// 发送ajax请求
$.ajax({
url: "/deleteAll", //请求的路径
type:"get", //请求的类型
data:param, //请求的数据
dataType:"json", //返回的数据的类型
success:function (json) { //返回数据要执行的函数
console.log(json);
$("#datagridpersion").datagrid("reload",{
});//重新加载当前页
$.messager.show({
title:"提示",
msg:json.msg
})
}
})
}
})
因为前端的id是一个string类型的拼接。在传这个data数据的时候,其实是这样的
Id名称一样,但是数量是不一样的,后端就需要这样的接受
代码语言:javascript复制@ResponseBody
@RequestMapping("/deleteAll")
public Object deleteAll(HttpServletRequest request){
根据id获取数组
String[] ids = request.getParameterValues("id");
System.out.println(ids[0]);
System.out.println(ids[1]);
// int i = persionService.deleteBatch(ids);
Map<String, String> map = new HashMap<>();
map.put("code","200");
map.put("msg","批量删除成功");
return map;
}
mapper 里面的xml语句这样写
代码语言:javascript复制 <delete id="deleteAll">
delete from persion where id in
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>