【问题标题】:jqGrid setCell calculated valuejqGrid setCell 计算值
【发布时间】:2012-03-11 13:41:56
【问题描述】:

我需要使用 jqGrid 和 PHP 开发一个网格,它有 4 列:ProductQuantityPriceAmount。从数据库中检索产品名称。如果用户编辑 Quantity 和 Price 列,则 amount 单元格应通过将 QuantityPrice 列相乘而自动更改。我试过如下:

var grid = $("#reportTable");

........

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

请注意,calculateTotal() 可以很好地计算出Quantity 列的大汇总,没有任何错误,并且可以完美地显示在网格的页脚。

【问题讨论】:

    标签: php javascript jqgrid


    【解决方案1】:

    我想你使用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' 将被重新计算。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多