2011-10-25 7 views
1

私はjqridを持っており、インライン編集を使用しています。問題は、読み取り専用である細胞の一つであり、それは価値が他に基づいています:jqrid readonlyセルは、インライン編集後に自動的に更新する必要があります

{ 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); 
} 
関連する問題