简单记录一下,开发中遇到在页面list 中要完成批量删除操作,当页面是后台的json 字符串返回得到的list列表时,首先页面上的json显示如下:
checkbox:true,
idField:"sysno",
columns: [{
field: "name",
title: "姓名",
width: "15%",
styleCls: "f-tac"
}, {
field: "sex",
title: "性别",
width: "15%",
styleCls: "f-tac",
formatter: function (value, row) {
if(value == "1"){
return "男";
}else{
return "女";
}
}
},{
field: "jobannex",
title: "港府工种",
width: "20%",
styleCls: "f-tac",
},]
这里的 checkbox:true时,页面上的list列表就有复选框了。
这里获取复选框后,如何得到勾选记录的id呢?
上述使用的json 中有一个属性是: idField:"sysno", 在勾选记录时,就绑定了对应记录的id。
这里需要在页面上写一个js 方法,获取勾选的id ,可能是一个或者多个。方法是参考网上的:
function selected(){
var perTag = document.getElementsByName("row_id");
var selectTag = "";
for(var i = 0;i < perTag.length;i++){
if(perTag[i].checked){
selectTag += perTag[i].value + ",";
}
}
if(perTag == "" || perTag.length == 0){
layer.alert("请至少选择一个人!");
}
selectTag = selectTag.substring(0,selectTag.length-1);
window.location.href ="url ?selectTag "+selectTag ;
}
这里的document.getElementsByName() 是获取input标签的对应name 属性,最终获得一个勾选记录的数组。
我本地这里代码是这样的:html += "<td class=\"f-tac\"><input type=\"checkbox\" name=\"row_id\" value=\"" + obj[opts.idField] + "\"/></td>";
而perTag[i].value则是获取勾选记录的id。
这样就通过url 可以将勾选记录id 字符串 传到后台的对应的方法中。
后台方法中,例如 xxxAction 后,就可以将id的字符串解析成数组。
StringBuffer delSql = new StringBuffer();
String[] arr = selectTag .split(",");
for(int i = 0 ; i < arr.length;i++ ){
xxxService.del(arr[i]);
}
这样就可以粗略完成一个批量删除功能。