我需要使用jqGrid和PHP开发一个有4列的网格:产品,数量,价格和金额< / strong>即可。从数据库中检索产品名称。如果用户编辑“数量”和“价格”列,则应通过将数量和价格列相乘来自动更改金额单元格。我尝试过如下:
var grid = $("#reportTable");
........
afterSaveCell: function (rowid, name, val, iRow, iCol) {
grid.jqGrid("setCell", rowid, "amount", val, "");
calculateTotal();
}
请注意, calculateTotal()可以很好地计算数量列的摘要,而不会出现任何错误,并且可以完美地显示在网格的页脚上。< / p>
答案 0 :(得分:4)
我想您使用cell editing。如果afterSaveCell回调非常适合根据列amount
和quantity
中的当前值更新计算列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几乎一样,但计算'总数'为'金额'和'税'的总和。对于测试,您应该修改“金额”或“税收”列中的值,并确认将重新计算“总计”。