Jqgrid:如何动态更改格式化程序?

时间:2011-11-29 11:32:02

标签: jquery jqgrid

我的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。任何想法或建议都会有很大的帮助..!

谢谢 西

1 个答案:

答案 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);
    });
}