jqgrid设置行数据为空时,该行单元格不可编辑,有数据的行单元格可以编辑
时间: 2024-03-06 11:50:01 浏览: 133
可以通过以下的方式在 jqGrid 中设置行数据为空时,该行单元格不可编辑,有数据的行单元格可以编辑:
1. 在 jqGrid 的 colModel 中设置每一列的 editable 属性,若该列的数据为空,则将该属性设置为 false,否则设置为 true。
2. 在 jqGrid 的 loadComplete 事件中遍历每一行,若该行数据为空,则将该行的所有单元格设为不可编辑状态。
以下是具体的代码实现:
```javascript
loadComplete: function(data) {
var rows = data.rows;
for (var i = 0; i < rows.length; i++) {
var row = rows[i];
if ($.isEmptyObject(row)) {
// 设置为空行的所有单元格不可编辑
$(this).jqGrid('setRowData', i + 1, '', {'editable': false});
}
}
},
colModel: [
{name:'name', index:'name', width:100, editable: true},
{name:'age', index:'age', width:50, editable: true},
{name:'email', index:'email', width:150, editable: true},
...
]
```
在上述代码中,loadComplete 事件中的代码会在 jqGrid 加载完成后执行,遍历每一行数据,如果该行数据为空,则将该行的所有单元格的 editable 属性设置为 false,这样该行单元格就不可编辑了。而 colModel 中的每一列的 editable 属性则根据该列的数据是否为空来设置,如果该列数据为空,则该列的单元格不可编辑,否则可编辑。
阅读全文