利用easyui实现增删改查(四):删除选中的数据,多条数据一起删除

2020-11-19 15:24:16 浏览数 (1)

需求: 我们选择好要删除的几条数据,之后按删除按钮,那么就可以删除

前端删除按钮的标签是

代码语言: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>

0 人点赞