SSH——增删改的实现二

二、批量删除

逻辑删除取派员,将取派员的deltag改为“1

1. 为“作废”按钮绑定事件

//批量删除取派员
    function doDelete(){
        //获得选中的行
        var rows = $("#grid").datagrid("getSelections");
        if(rows.length == 0){
            //没有选中,提示
            $.messager.alert("提示信息","请选择需要删除的记录!","warning");
        }else{
            var array = new Array();
            //选中了记录,获取选中行的id
            for(var i=0;i<rows.length;i++){
                var id = rows[i].id;
                array.push(id);
            }
            var ids = array.join(",");//1,2,3,4
            //发送请求,传递ids参数
            window.location.href = '${pageContext.request.contextPath}/staffAction_delete.action?ids='+ids;
        }
    }

2. StaffAction中提供ids属性和set方法,delete方法批量删除

//接收ids参数
    private String ids;
    public void setIds(String ids) {
        this.ids = ids;
    }
    
    /**
     * 批量删除功能(逻辑删除)
     * @return
     */
    public String delete(){
        staffService.deleteBatch(ids);
        return "list";
    }

3. 在service中提供批量删除方法

/**
     * 批量删除
     */
    public void deleteBatch(String ids) {
        String[] staffIds = ids.split(",");
        for (String id : staffIds) {
            staffDao.executeUpdate("staff.delete", id);
        }
    }

4. Staff.hbm.xml中定义更新语句

 <query name="staff.delete">
        UPDATE Staff SET deltag = '1' WHERE id = ?
    </query>

 

三、 取派员信息修改功能(双击弹出与提交相同的窗口,直接在原数据基础上进行修改)

1. 复制添加取派员窗口,获得修改的窗口

    <!-- 修改窗口 -->
    <div class="easyui-window" title="对收派员进行添加或者修改" id="editStaffWindow" collapsible="false" 
            minimizable="false" maximizable="false" style="top:20px;left:200px">
        <div region="north" style="height:31px;overflow:hidden;" split="false" border="false" >
            <div class="datagrid-toolbar">
                <a id="edit" icon="icon-save" href="#" class="easyui-linkbutton" plain="true" >保存</a>
                <script type="text/javascript">
                    $(function(){
                        //绑定事件
                        $("#edit").click(function(){
                            //校验表单输入项
                            var v = $("#editStaffForm").form("validate");
                            if(v){
                                //校验通过,提交表单
                                $("#editStaffForm").submit();
                            }
                        });
                    });
                </script>
            </div>
        </div>
        
        <div region="center" style="overflow:auto;padding:5px;" border="false">
            <form id="editStaffForm" action="${pageContext.request.contextPath }/staffAction_edit.action"
                     method="post">
                     <input type="hidden" name="id">
                <table class="table-edit" width="80%" align="center">
                    <tr class="title">
                        <td colspan="2">收派员信息</td>
                    </tr>
                                
                    <tr>
                        <td>姓名</td>
                        <td><input type="text" name="name" class="easyui-validatebox" required="true"/></td>
                    </tr>
                    <tr>
                        <td>手机</td>
                        <td><input type="text" name="telephone" class="easyui-validatebox" required="true"
                            data-options="validType:'phonenumber'"
                        /></td>
                    </tr>
                    <tr>
                        <td>单位</td>
                        <td><input type="text" name="station" class="easyui-validatebox" required="true"/></td>
                    </tr>
                    <tr>
                        <td colspan="2">
                        <input type="checkbox" name="haspda" value="1" />
                        是否有PDA</td>
                    </tr>
                    <tr>
                        <td>取派标准</td>
                        <td>
                            <input type="text" name="standard" class="easyui-validatebox" required="true"/>  
                        </td>
                    </tr>
                    </table>
            </form>
        </div>
    </div>

2. 修改datagrid的双击行事件的处理函数

//双击事件处理函数
    function doDblClickRow(rowIndex, rowData){//{id:xxx,name:xx,}
        $('#editStaffWindow').window("open");//打开修改窗口
        $("#editStaffForm").form("load",rowData);  //将表单数据显示在框中
    }

3. 在StaffAction中提供edit方法,修改取派员信息(将提交表单数据封装到model,然后再覆盖staff)

      /**
     * 修改取派员信息
     */
    public String edit(){
        //显查询数据库中原始数据
        Staff staff = staffService.findById(model.getId());
//再按照页面提交的参数进行覆盖 staff.setName(model.getName()); staff.setTelephone(model.getTelephone()); staff.setStation(model.getStation()); staff.setHaspda(model.getHaspda()); staff.setStandard(model.getStandard());
staffService.update(staff);
return "list"; }

点击提交之后,调用edit方法,将数据封装到model并覆盖staff

原文地址:https://www.cnblogs.com/zjfjava/p/7031662.html