当使用批量删除的时候 会出现这种问题,明明已经删除了的那条数据,在后台跟踪代码的时候会发现id还是会传过去,原因就在于,选中多行进行提交时删除后,还有id还在缓存中;
解决办法在每次执行删除后,手动对获取到的行数据进行赋值,将其赋值为null
这里使用的办法是:
selectRows.length=0;
monthReport.delReport=function(id){
var selectRows = $('#MonthReportTab').datagrid('getSelections');
if(selectRows.length==0){
$.messager.alert("系统提示","请选择一条数据然后重试!","warning");
return;
}else{
$.messager.confirm("提示", "是否确认要当前所选中的月报?", function(r) {
if (r){
var reportsIds= "";
for(i=0 ; i < selectRows.length; i++){
reportsIds += selectRows[i].id;
reportsIds += ",";
}
$.ajax({
url:"deleteMonthReport.action?monthReport.id="+reportsIds+ "&t="+new Date().getTime(),
type:'post',
success:function(data){
if(data){
$.messager.alert('系统提示', '删除成功!');
$('#monthReportdlg').dialog('close');
$('#MonthReportTab').datagrid('reload');
selectRows.length=0;
}else{
$.messager.alert('系统提示', '删除失败!','warning');
$('#monthReportdlg').dialog('close');
$('#MonthReportTab').datagrid('reload');
selectRows.length=0;
}
}
});
}
})
}
}
试验证明
$('#datagrid').datagrid('clearSelections');
此方法是easyUI自带的可以处理此问题的方法。