添加一个jqgrid列,该列是另外两列的结果

时间:2016-12-28 11:13:39

标签: javascript jquery jqgrid

我想总结jqGrid表的列值。我的jqGrid "SL", "Item", "Quantity", "Rate","Amount"中有四列,其中AmountQuantity*Rate的结果,此乘法不是检索到的查询data.It在javascript代码里面完成。现在我要总结金额列。正确显示。我已经用警告检查了它但当我试图在页脚行$grid.jqGrid('footerData', 'set', { 'amountcalculate': parseFloat(colSum)});上设置它时显示NAN。为什么它不起作用。我之前使用了页脚行并进行了求和。它工作得很好。当我尝试添加由另外两列导致的列值时,它不起作用。 这是我的代码

  subGrid : true,
        subGridRowExpanded: function (subgridId, rowid) {
            var subgridTableId = subgridId + "_t";
            $("#" + subgridId).html("<table id='" + subgridTableId + "'></table>");
            $("#" + subgridTableId).jqGrid({
                datatype: "json",
                    url: "/bbbb/regfgfgfisterFgshGood        /listReceivableOrderDetails?id=" + rowid,
                     colNames: ["SL", "Item", "Quantity", "Rate","Amount"],
                       colModel: [
                    {name: "sl", width: 40, align: 'center'},
                    {name: "item", width: 230, align: 'left'},
                    {name: "quantity", width: 100, align: 'center'},
                    {name: "amount", width: 100, align: 'right'},
                    { name: "amountcalculate", width: 60,
                        formatter: function (cellvalue, options, rowObject)
                        {
                            var rq = parseFloat(rowObject[2] );
                            var up = parseFloat(rowObject[3] );
                            return parseFloat(rq * up).toFixed(2);
                        }
                    }
                ],
                height: "100%",
                rowNum: -1,
                sortname: "name",
                footerrow : true,
                idPrefix: "s_" + rowid + "_"
            });
            debugger
            var $grid = $("#" + subgridTableId);
            var colSum = $grid.jqGrid('getCol', 'amountcalculate', false, 'sum');
            alert(colSum);
            $grid.jqGrid('footerData', 'set', { 'amountcalculate': parseFloat(colSum)});
        },

1 个答案:

答案 0 :(得分:0)

请在所有问题中包含您使用(可以使用)的jqGrid版本和jqGrid的分支free jqGrid,商业Guriddo jqGrid JS或版本中的旧jqGrid&lt; = 4.7)。解决方案可能取决于信息。

我认为问题的根源是使用自定义格式化程序而不用指定相应的非格式化函数。请参阅the documentation

通常,最好将自定义格式化程序替换为jsonmap函数,该函数根据其他属性的值返回计算值。例如,它允许将jsonmap函数与另一个格式化程序相结合,例如formatter: "currency"formatter: "integer"等等。