我的Jqgrid问题不太独特。我已经说过,我做了一个after loadComplete,我将一些可编辑的行显示为
$("#correction-grid").editRow(rowid, true);
但我不希望这种情况发生在某些颜色上,如果它的一个颜色值恰好是'不正常' 所以我试过这个
loadComplete: function (rowid, status) {
$("#correction-grid > tbody > tr").each(function (rowid) {
$("#correction-grid").editRow(rowid, true);
var value = $('#correction-grid').jqGrid('getCell',rowid,'product_group_code');
console.log(value)
if(value == 'MISC'){
$('#correction-grid').setColProp('x_code',{edittype:false});
$('#correction-grid').setColProp('yr_code',{edittype:false});
$('#correction-grid').setColProp('diesel',{edittype:false});
}
});
其中x_code恰好是带有dataEvents的选择框,而yr_code和diesel被格式化为文本值。如果我正在尝试在formmaters中应用此逻辑,则所有行都将成为可读字段。所以我尝试了loadComplete。任何想法或建议都会有很大的帮助..!
谢谢 西
答案 0 :(得分:1)
我认为您的错误是在更改editRow
属性之前调用了edittype
,并且您没有将值重置为true
以防万一value !== 'MISC'
。您可以修改代码:
loadComplete: function () {
var $this = $(this); // $("#correction-grid")
$("> tbody > tr", this).each(function (rowid) {
var product_group_code = $this.jqGrid('getCell', rowid, 'product_group_code'),
isEditable = product_group_code !== 'MISC';
console.log(product_group_code);
$this.setColProp('x_code', {edittype: isEditable});
$this.setColProp('yr_code', {edittype: isEditable});
$this.setColProp('diesel', {edittype: isEditable});
$this.editRow(rowid, true);
});
}