2012-03-11 59 views
4

は、私は4つの列を持っているものjqGridとPHPを使用してグリッドを開発する必要があります。製品名はデータベースから取得されます。ユーザーが数量列と価格列を編集した場合は、セルに、数量価格列を掛けて自動的に変更する必要があります。次のように私が試してみた:jqGrid setCell計算値

var grid = $("#reportTable"); 

........ 

afterSaveCell: function (rowid, name, val, iRow, iCol) { 
    grid.jqGrid("setCell", rowid, "amount", val, ""); 
    calculateTotal(); 
} 

calculateTotal()がエラーなしでうまく数量列の総計を計算することができ、かつ完全にグリッドのフッターに表示することができますので、予めご了承ください。

答えて

4

cell editingを使用するとします。この場合、afterSaveCellコールバックは、quantitypriceという列の現在の値に基づいて、計算された列amountを更新するのに本当に良い場所です。対応するコードは、次の操作を行います

afterSaveCell: function (rowid, cellname, value) { 
    var quantity, price, $this; 
    if (cellname === 'quantity' || cellname === 'price') { 
     $this = $(this); 
     quantity = parseFloat($this.jqGrid("getCell", rowid, 'quantity')); 
     price = parseFloat($this.jqGrid("getCell", rowid, 'price')); 
     $this.jqGrid("setCell", rowid, 'amount', quantity * price); 
    } 
} 

The demoについてほぼ同じであってもよいが、「量」と「税」の合計として「総」を計算することができます。テストの場合は、 'amount'または 'tax'カラムから値を変更し、 'total'が再計算されることを確認する必要があります。