jqGrid setCell计算值

时间:2012-03-11 13:41:57

标签: php javascript jqgrid

我需要使用jqGrid和PHP开发一个有4列的网格:产品数量价格金额< / strong>即可。从数据库中检索产品名称。如果用户编辑“数量”和“价格”列,则应通过将数量价格列相乘来自动更改金额单元格。我尝试过如下:

var grid = $("#reportTable");

........

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

请注意, calculateTotal()可以很好地计算数量列的摘要,而不会出现任何错误,并且可以完美地显示在网格的页脚上。< / p>

1 个答案:

答案 0 :(得分:4)

我想您使用cell editing。如果afterSaveCell回调非常适合根据列amountquantity中的当前值更新计算列price。相应的代码可以是以下

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几乎一样,但计算'总数'为'金额'和'税'的总和。对于测试,您应该修改“金额”或“税收”列中的值,并确认将重新计算“总计”。