我需要使用jqGrid和PHP开发一个网格,它有4列:产品、数量,价格和金额。产品名称是从数据库中检索的。如果用户编辑"数量"answers"价格"列,则金额单元格应通过将数量和价格列相乘来自动更改。我试过如下:
var grid = $("#reportTable");
........
afterSaveCell: function (rowid, name, val, iRow, iCol) {
grid.jqGrid("setCell", rowid, "amount", val, "");
calculateTotal();
}
请注意,calculateTotal()可以很好地计算数量列的汇总,而不会出现任何错误,并且可以完美地显示在网格的页脚上。
我想您使用的是单元格编辑。在这种情况下,afterSaveCell回调确实是基于列quantity
和price
的当前值更新计算列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"税款"的总和。对于测试,您应该修改"金额"或"税款"列中的值,并验证是否将重新计算"总额"。