2011-10-25 76 views
1

我有一個jqrid並使用了內聯編輯。問題是其中的一個單元是隻讀的,它的價值是基於另一個:jqrid只讀內嵌單元格需要在內聯編輯後自動更新

{ name: 'ActivityId', index: 'ActivityId', width: 200, align:'left', editable: true, editrules: { required : true }, edittype:"select", editoptions: { dataUrl: '/Invoice/GetActivities/' + organisationId, 
          buildSelect: function(data) { 
           var response = jQuery.parseJSON(data); 

           var s = '<select>'; 

           if(response.rows && response.rows.length) { 
           for (var i = 0, l=response.rows.length; i<l ; i++) { 
             var ri = response.rows[i]; 
             s += '<option value="'+ri.Id+'">'+ri.Descriptor+'</option>'; 
            } 
           } 
           return s + "</select>"; 

           return s; 
          } 
       } }, 

       { name: 'PriceGroup', index: 'PriceGroup', align: 'center', editable: false }, 

所以在PriceGroup列中的值的計算依據是什麼ActivityId是。

所以在加載網格時很好,但是在執行編輯之後,這個單元格的值與以前的ActivityId相關。

手動點擊刷新後恢復正確的值。

我想知道如何讓這個值在編輯後正確通過。我應該在代碼中編輯後刷新網格嗎?你會怎麼做?有沒有更好的辦法?

回答

1

如果你看一下jqGrid wiki,你可以通過editRow功能成功的功能:

jQuery("#grid_id").jqGrid('editRow',rowid, keys, oneditfunc, succesfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc); 

從這裏,你可以通過傳遞函數等設定的行項目:

function(rowid){ 
    var dataColumn = 2; 
    var dataValue = $('#grid_id').getCell(rowId,dataColumn); 
    var resultColumn = 3; 
    $('#grid_id').setCell(rowId,resultColumn,dataValue*5+1); 
} 
相關問題