jqGrid setCell calculated value


jqGrid setCell calculated value

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

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

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

我想您使用的是单元格编辑。在这种情况下,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);
    }
}

这个演示几乎是一样的,但将"总额"计算为"金额"answers"税款"的总和。对于测试,您应该修改"金额"或"税款"列中的值,并验证是否将重新计算"总额"。