您的位置:首页 > 编程语言

datagrid批量删除的部分代码

2016-08-12 15:48 302 查看

前端Js代码

// easyui的datagridAPI
var selected = $('#dg').datagrid('getSelections');
if (selected.length <= 0) {
return;
}
$.messager.confirm('确认', '您确认要删除选中条目吗?', function(r) {
if (r) {
// ajax访问数据库删除选中的条目
$.ajax({
type : 'POST',
contentType : 'application/json;charset=utf-8',
url : '/TrainingProgramManager/deleteProjects.do',
data : JSON.stringify(selected),
success : function(rows) {
$('#dg').datagrid('reload');
$.messager.show({
title : 'tishi',
msg : '共有  ' + rows + ' 条数据被删除',
timeout : 2000,
showType : 'slide',
});
}

});
}
});


控制层代码

@RequestMapping(value = "/deleteProjects", method = { RequestMethod.POST })
@ResponseBody
public int deleteBatch(@RequestBody List<Project> projects) {
int rows = projectService.deleteBatch(projects);
return rows;
}


注:这里的形参List<Project>与AJax所传参数Json格式要对应,不然可能出现415或500异常;

Mybatis中Mapper的写法

先要在Mapper对应的接口中定义方法:
public int deleteBatch(List<Project> projects);
然后xml文件中这样写:
<delete id="deleteBatch" parameterType="java.util.List">
UPDATE tb_projects
SET
is_delete = true
<where>
project_id IN
<foreach collection="list" item="proj" open="(" separator="," close=")">
#{proj.id}
</foreach>
</where>
</delete>

注:这里有个地方需要注意:
当传入参数是和我一样的LIst<PO>时,parameterType就java.util.List,foreach中的collection固定为“list”;
当传入参数是数组类型时,parameterType为PO类路径,foreach中的collection固定为“array”(好像写参数名也行,可一试);
当List是组合在一个Vo中时,parameterType则为Vo类路径,foreach中的collection为List在Vo中的属性名;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: