Jsp页面通过勾选复选框实现批量删除

一、将前台jsp页面中的所有你要用到checkbox的name值设为相同
二、在后台获取参数时,使用数组获取:
三、进行数组必要的格式转换,再进行sql操作

Jsp 页面
<input type='checkbox' name='chk' id='chk' value="+empId+">
<input type="checkbox" name="allchk" id="allchk" onclick="allCheck(this);"/>全选
<input class="btnBlue mL10 ygDelRow" value="删除" onclick="deleteContactor();" type="button">
<input id="delstrs"  value="" type="hidden">

全选按钮的函数
//全选按钮
function allCheck(check){
        var checkbox=document.getElementsByName("chk");
        if(check.checked){
        	for(var i=0;i<checkbox.length;i++){
        		checkbox[i].checked="checked";
        	}    	
        }else{
        	for(var i=0;i<checkbox.length;i++){
        		checkbox[i].checked="";
        	} 
        }
}


删除员工的函数
//删除员工
function deleteContactor(){
	
	var empId="";
    var sel=document.getElementsByName("chk");//获取checkbox的值
    for( var i=0;i<sel.length;i++)
        if(sel[i].checked==true)
        	empId+=sel[i].value+"~";
	  if(empId === undefined || empId === ''){
		  alert("请至少选择一条记录!");
		  return ;
	  }
	  $("#delstrs").val(empId);
	  $.popup($(".zctjcg"));
	    $('.zctjcg').show();
	    $('.maskBlack').show();
	 }
//确认删除
function confirmDelete(){
//	 if(confirm("您确定删除选定的员工信息?")){
		var empId= $("#delstrs").val();
		var url = GETFRONTUSERSTRING+"doDelEmp.action";
		var param = {
			empId:empId
		};
		try{
		new AjaxRequest(url,{
			parameters:param,
			onComplete:function(data){
				$(".zctjcg").hide();
				$(".maskBlack").hide();
				doStaffQuery();
			},
			onFail:function(){
				return false;
			}
		});
		}catch(e){
			alert(e.message);
			$(".zctjcg").hide();
			$(".maskBlack").hide();			
	      return;
		}
	  }

//后台获取参数
	String empId = this.getAjaxParameter("empId");
        String [] empIds = empId.split("~"); 

  /** 
     * 获取Get方式的Ajax请求参数解码值
     * 实际上就是调用request.getParameter方法获得参数,然后再进行编码转换 
     */
    public String getAjaxParameter(String paramName) { 
    	if (paramName == null) {
    		return null;
    	}
        String value = this.getRequest().getParameter(paramName);  
        String decodedValue = this.getDecodedValue(value);
        
        return decodedValue;  
    }


//数据库修改值批量更新
ManagerFactory.getEnterpriseEmpManager().updateEmpStatus(empIds,sessionUser.getUserId());


//dao层方法具体实现
	public int[] batchUpdateEmpStatus(final String[] empIds, final String userId) {
		String sql = "update aes_enterprise_emp p set status = ? ,operator = ? , operatetime = ? where p.enterpriseempid=?";
		return this.batchUpdate(sql.toString(), new BatchPreparedStatementSetter() {
			public void setValues(PreparedStatement ps, int index) throws SQLException {
				String empid=empIds[index];
				ps.setString(1, "0");
				ps.setString(2, userId);
				ps.setTimestamp(3,new Timestamp(new Date().getTime()));
				ps.setString(4, empid);
			}
			@Override
			public int getBatchSize() {
				return empIds.length;
			}
		});
      
	}


底层dao
	 protected int[] batchUpdate(String sql, BatchPreparedStatementSetter setter) {
			logManager.info(this.getClass(), sql);
			
	        return getJdbcTemplate().batchUpdate(sql, setter);
	 }


//效果图



猜你喜欢

转载自lovemojienv.iteye.com/blog/2397285
今日推荐