【问题标题】:JQgrid total amount rowJQgrid总金额行
【发布时间】:2011-11-15 14:50:42
【问题描述】:

iv 在 jqgrid 中看到 @Oleg 的行总和示例,但我尝试应用它,但它不起作用我有以下网格我需要计算它的金额值。

colNames: ['ID', 'FTE', 'Workload'],
    colModel: [
                { name: 'ID', index: 'ID', width: 200, align: 'left', hidden: true },

                { name: 'FTEValue', index: 'FTEValue', width: 200, align: 'left', formatter: 'number' },
                { name: 'Workload', index: 'Workload', width: 200, align: 'left' },



    caption: "Activity FTE",
    gridview: true,
    rownumbers: true,
    rownumWidth: 40,
    scroll: 0,
    rowNum: 100,
    sortname: 'ID',
    pager: '#pager',
    sortorder: "asc",
    viewrecords: true,
    autowidth: true,
    height: '100%',
    footerrow: true,
    jsonReader: { root: "GridData", page: "CurrentPage", total: "TotalPages", records: "TotalRecords", repeatitems: false, id: "0" }
};



DutyFTEGrid.prototype.SetupGrid = function (selector) {
    jQuery(selector).html('<table id="grid"></table><div id="pager"></div>');
    var grid = jQuery("#grid").jqGrid(this.gridConfiguration);

    jQuery("#grid").jqGrid('navGrid', '#pager',
    { edit: false, add: false, search: false }, {}, {},
    { // Delete parameters
        ajaxDelOptions: { contentType: "application/json" },
        mtype: "DELETE",
        serializeDelData: function () {
            return ""; 
        },
        onclickSubmit: function (params, postdata) {
            params.url = serviceURL + 'DutyFTE(' + encodeURIComponent(postdata) + ')/';
        }
    });

    var grid = $("#grid");
    var sum = grid.jqGrid('getCol', 'FTE', false, 'sum');
    grid.jqGrid('footerData', 'set', { DriverEn: 'Total FTE:', FTEValue: sum });
};

请奥列格您的帮助,我已经尝试过您的示例,但由于某种原因它不起作用。

【问题讨论】:

    标签: json jqgrid sum


    【解决方案1】:

    如果我理解你是正确的,你想把getCol 和footerData 方法放在页脚中:

    var grid = $("#list"),
        sum = grid.jqGrid('getCol', 'amount', false, 'sum');
    
    grid.jqGrid('footerData','set', {ID: 'Total:', amount: sum});
    

    getCol 可用于计算“金额”列中所有数字的总和,对于 footerData,您可以在 'ID' 列的底部放置文本“总计:”并在'amount' 列的底部。

    已更新:可能您遇到了问题,因为您将代码放置在错误的位置。代码最安全的地方是loadComplete 事件处理程序。看the demo。

    【讨论】:

    • 谢谢你,我累了,但我不知道为什么结果总是0!
    • 我把col名弄错了,反正我现在放了正确的,根本没有值出现,注意:单元格内的值像0.3一样浮动
    • @Madi:如果要将数据计算为浮点数,则应在列中定义浮点格式化程序。只需在“金额”列中添加formatter: 'number'。如果如果没有帮助,您应该在您的问题中附加完整的 jqGrid 定义和测试数据。
    • 是的,它确实改变了格式,但我仍然得到 0:00 的总数:S 我不知道为什么,也许它在行初始化之前进行了计算?
    • 我已经用填充 jqgrid 更新了问题,我需要计算 FTEValue 列
    【解决方案2】:

    价格列总计:

    //Count total for a price column
    var total = 0;
    $('#table tr').each(function(){
    
        //cells that contains the price
        var tdprice = $(this).find("td:eq(2)").html();
    
        //Sum it up!
        if (isNaN(tdprice)){ total += parseInt(tdprice); }
    });
    
    alert(total + "$");
    

    【讨论】:

      猜你喜欢
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 2019-07-22
      • 2018-10-31
      • 1970-01-01
      • 2017-12-19
      • 2017-07-18
      • 1970-01-01
      相关资源
      最近更新 更多