天天看点

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

单元格可编辑需要设置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');