jsp中,<input id="checkRoleIds" type="hidden" value=""/>,缓存所有ids。
<th field="authorized" class="checkbox formatter-booleanFormatter" width="5%" ></th>,grid第一列checkbox。
grid调用search后,渲染grid的checkbox。function booleanFormatter(cell,data){
var checkRoleIds = $("#checkRoleIds").val();
var currentId = data.id;
if(checkRoleIds.indexOf(currentId) != -1){
$(cell).html("<input class='booleanFormatter grid_tr_selector' type='checkbox' checked='checked' οnchange='onChangeCheckRoleId(this,"+currentId+")'/>");
}else{
$(cell).html("<input class='booleanFormatter grid_tr_selector' type='checkbox' οnchange='onChangeCheckRoleId(this,"+currentId+")'/>");
}
}
function onChangeCheckRoleId(cell,roleId){
if(cell.checked == true){
addCheckedRoleId(roleId);
}else if(cell.checked == false){
removeUncheckedRoleId(roleId);
}
}
function addCheckedRoleId(roleId){
var checkRoleIds = $("#checkRoleIds").val();
checkRoleIds += roleId + ",";
$("#checkRoleIds").val(checkRoleIds);
}
function removeUncheckedRoleId(roleId){
var checkRoleIds = $("#checkRoleIds").val();
var remove = roleId + ",";
var index = checkRoleIds.indexOf(remove);
var part1 = checkRoleIds.substring(0,index);
var part2 = checkRoleIds.substring(index + remove.length);
$("#checkRoleIds").val(part1 + part2);
}