easyui+springboot实现批量删除(基于easyui数据分页基础第二版)

1.上篇文章讲了easyui的分页和模糊搜索功能,这篇文章基于上篇文章,在上篇文章基础上使用easyui

来完成批量删除功能

2.因为easyui和其他前台框架不一样,所以使用传统的js操作达不到效果,页面及js代码如下所示:本篇重点是批量删除操作

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="css/jquery.dataTables.min.css">
    <link rel="stylesheet" type="text/css" href="js/jquery-easyui-1.4.3/themes/default/easyui.css">
    <link rel="stylesheet" type="text/css" href="js/jquery-easyui-1.4.3/themes/icon.css">
</head>
<body>
<div  style="padding:3px" class="easyui-panel">
    <span>班级或辅导员名称模糊查询:</span>
    <input id="mohu" style="line-height:26px;border:1px solid #ccc">
    <a href="#" class="easyui-linkbutton" plain="true" onclick="doSearch()">Search</a>
    <a href="#" class="easyui-linkbutton" plain="true" icon="icon-add">新增</a>
    <a href="#" class="easyui-linkbutton" plain="true" onclick="del()" icon="icon-remove">删除</a>
    <a href="#" class="easyui-linkbutton" plain="true" icon="icon-save">编辑</a>
</div>
<table id="dgs" title="文章管理" class="easyui-datagrid" fitColumns="true" pagination="true"
       toolbar="#tb" rownumbers="true">
    <thead>
    <tr>
        <th field="idx" checkbox="true"  class="chj" align="center"></th>
        <!--<th field="tid" width="20" align="center" hidden="true"></th>-->
        <th field="loanSumNum" width="200" >贷款人数</th>
        <th field="className" width="100" align="center">班级名称</th>
        <th field="classSumNum" width="100" align="center">班级人数</th>
        <th field="teacherName" width="100" align="center">老师名称</th>
        <th field="fdyName" width="100" align="center">辅导员名称</th>
        <th field="fdyNum" width="100" align="center">辅导员编号</th>
    </tr>
    </thead>
</table>
<script src="js/jquery.js"></script>
<script src="js/jquery.dataTables.min.js"></script>
<script src="js/jquery-easyui-1.4.3/jquery.easyui.min.js"></script>
<script>
$(function(){
    queryData();

})
function queryData(){
    //注意:本来我的url是写在table标签中的,但是那样的话参数不好传递需要拼接,所以把url动态写
    $("#dgs").datagrid({
        collapsible: true,
        url: "../../fysq",
        method: 'POST',
        queryParams: {"mohu":$("#mohu").val() },
        sortName: 'title',
        loadMsg: "数据加载中...",
        //数据展示我写的静态的在table中,也可以用下面的动态的进行展示
//        columns:[[
//               {title: '学号', field: 'id', width: 200, align: 'center'},
//               {title: '班级名称', field: 'className', width: 100, align: 'center'},
//               {title: '班级人数', field: 'classSumNum', width: 100, align: 'center'},
//               {title: '老师名称', field: 'teacherName', width: 100, align: 'center'},
//               {title: '辅导员名称', field: 'fdyName', width: 100, align: 'center'},
//               {title: '辅导员编号', field: 'fdyNum', width: 100, align: 'center'},
//        ]]
    });

    //自定义分页条的样式,因为默认的可读性不是很好
    var p = $('#dgs').datagrid().datagrid('getPager');
    p.pagination({
        pageSize: 10,
        pageList: [10, 20, 30, 40, 50],
        beforePageText: '第',
        //下面这几个参数就用就这个名称不用改
        afterPageText: '共{pages}页',
        displayMsg: '当前显示 {from} 到 {to} ,共{total}记录',
//        onSelectPage: function (pageNumber, pageSize) {
//        }
    })
}
function doSearch(){
    queryData();
}
//点击删除按钮触发该函数
function del(){
    //获取选中行的数据,返回的是数组
    //获取选中行的数据
    var selectRows = $("#dgs").datagrid("getSelections");
    //如果没有选中行的话,提示信息
    if (selectRows.length < 1) {
        $.messager.alert("提示消息", "请选择要删除的记录!", 'info');
        return;
    }
    $.messager.confirm("确认消息", "确定要删除所选记录吗?", function (isDelete) {
        //如果为真的话
        if (isDelete) {
            //定义变量值
            var strIds = "";
            //拼接字符串,这里也可以使用数组,作用一样
            for (var i = 0; i < selectRows.length; i++) {
                strIds += selectRows[i].idx + ",";
            }
            //循环切割
            strIds = strIds.substr(0, strIds.length - 1);
            $.ajax({
                type:'post',
                dataType:'json',
                data:{'strIds':strIds},
                url:'../../banchDelete',
                success:function(data){
                    if(data.success=='ok'){
                        $.messager.alert('提示', '删除成功!');
                        $("#dg").datagrid("reloads"); //删除成功后 刷新页面
                    }else{
                        $.messager.alert('提示信息', '删除失败,请联系管理员!', 'warning');
                    }

                }
            })
        }
    });


}
</script>
</body>
</html>

3.controller

    @ResponseBody
    @RequestMapping("/banchDelete")
    public Map<String,Object> deleteBanch(String strIds){
    //批量删除
        Map<String,Object> map=new HashMap<String,Object>();
       int k= dataShowService.banchDelete(strIds);
       if(k>0){
           map.put("success","ok");
           map.put("msg","删除成功");
       }else{
           map.put("msg","删除失败");
       }
        return map;
}

4.service

   int banchDelete(String strIds);

5.serviceImpl:使用List集合向后传递参数

    @Override
    public int banchDelete(String strIds) {
        String arr[]=strIds.split(",");
        List list=new ArrayList();
        for(int i=0;i<arr.length;i++){
            list.add(arr[i]);
        }
        return dataShowServiceMapper.banchDelete(list);
    }

6.dao

 int banchDelete(List list);

7.mapper

    <delete id="banchDelete" parameterType="java.util.List">
         delete from classtable where idx in
        <foreach collection="list" item="has" open="(" separator="," close=")">
            #{has}
    </foreach>
    </delete>

参数说明:

 classtable: 表名, idx: 字段名,

 collection:表示类型,这里参数是数组,就写成array,如果是集合,就写成list ,

item : 是一个变量名,自己随便起名 

注意:这个for循环语句一定要自己手写,不要复制,我复制的没有错但是运行就报错了,特别坑爹,我自己敲了一遍才行了,当时快崩溃了,这个坑一定要注意,我用的idea

 

猜你喜欢

转载自blog.csdn.net/royal1235/article/details/83476492