此文为博主原创内容,转载请说明出处,欢迎各位批评指点。
多行删除的思想就是:取到所选中多行的ID进行字符串拼接,传到后台对字符串分割,循环进行删除每一行。
所以说此问题的重点就是解决字符串的拼接、分割。
JSP:
<script type="text/javascript">
$(document).ready(function(){
var editIndex = undefined;
$('#userTable').datagrid({
url:'${contextPath}/testuser/queryUser.action?querySource=123',
rownumbers:true,
pagination:true,
fitColumns:true,
fit:true,
idField:'fuserid',
singleSelect:false, //此处不能忘记改为false,否则不能多选
striped:true,
pageSize:10,
toolbar:[{
id:'delUser',
text:'删除',
iconCls:'icon-remove',
handler:function(){
var selectRows = $('#userTable').datagrid('getChecked');
if(selectRows.length == 0){
showMessage1('请选择要删除的用户!');
return;
}
var fuserids = [];
for (var i = 0; i < selectRows.length; i++) {
fuserids += selectRows[i].fuserid + ","; //字符串以“,”拼接
}
fuserids = fuserids.substr(0, fuserids.length - 1); //去掉最后一个“,”
//alert(fuserids);
if (confirm('确定删除吗?')) {
window.location.href="${contextPath}/testuser/delUser.action?fuserids="+fuserids;
return true;
} else {
return false;
}
}
}
],
onClickCell:function(index,field,value){
if(field == 'fname'){
$('#userTable').datagrid('beginEdit',index);
if(editIndex != undefined){
$('#userTable').datagrid('endEdit',editIndex);
}
if(editIndex != index){
editIndex = index;
}
}
},
columns:[[
{field:'fuserid',checkbox:true},
{field:'floginname',title:'用户账号',sortable:true, width:100},
{field:'fname',title:'用户姓名', width:100,
editor:{type:'validatebox',options:{required:true}}
},
{field:'fdepname',title:'所在单位', width:100},
{field:'fsex',title:'性别', width:100},
]]
});
});
</script>
后台代码:
public String delete() {
String fuserids = this.getRequestParameter("fuserids"); //接受拼接后的字符串(id)
//System.out.println(fuserids);
String[] delFuserids = fuserids.split(","); //分割字符串
for (int i = 0; i < delFuserids.length; i++) { //每次循环删除一行
newUser = (UUser) this.testUserService.get(UUser.class,delFuserids[i]);
if (newUser != null) {
testUserService.delete(newUser);
}
}
return SUCCESS;
}
```