jqgrid 动态设置单元格不可编辑

时间:2022-04-15 19:36:42
单元格可编辑需要设置3个地方
1、tableGrid里面的参数 cellEdit:true(开启行编辑功能)  false(默认,不可编辑)
2、cellsubmit: 'clientArray' 设置编辑完成后的存储方式
3、colModel 里面的参数editable:true(开启单元格编辑功能) 


如何动态设置单元格不可编辑
首先,表格加载完成后使用gridComplete 事件,给需要动态设置的单元格添加一个唯一属性(这里我添加的是样式)
使用 setCell 方法给单元格设置属性
//初始化数据
function getInitFormatData(){
var ids = jQuery("#tabGrid").jqGrid('getDataIDs');
if (ids.length > 0){
$.each(ids,function(i,v){

$("#tabGrid").jqGrid('setCell', v, 'checkTime', '', 'review-'+v);
//getIsCheckResult(v);
});
} else {

//没有数据隐藏按钮
//$("#btnboxId").addClass("step-hide");
}
};


然后根据选定的值,动态设置单元格不可编辑 not-editable-cell 这个属性就是单元格不可编辑,就算是在单元格设置了editable:true,也是不可编辑的
$("#tabGrid").jqGrid('setCell', rowid, 'checkTime', '', 'not-editable-cell');


怎么让单元格再次编辑, 就是要取消刚才给单元格设置的not-editable-cell属性
使用刚才初始化给单元格添加的样式,通过jquery 删除属性,单元格就可以再次编辑了
$(".review-"+rowid).removeClass('not-editable-cell');