Json JQgrid总金额行

Json JQgrid总金额行,json,jqgrid,sum,Json,Jqgrid,Sum,我在jqgrid中看到了@Oleg为row total sum提供的示例,但我尝试应用它,但它不起作用。我有下面的网格,我需要计算它的金额值 colNames: ['ID', 'FTE', 'Workload'], colModel: [ { name: 'ID', index: 'ID', width: 200, align: 'left', hidden: true }, { name: 'FTEValue', ind

我在jqgrid中看到了@Oleg为row total sum提供的示例,但我尝试应用它,但它不起作用。我有下面的网格,我需要计算它的金额值

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 });
};
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',宽度:200,align:'left'},
标题:“全职员工活动”,
gridview:没错,
行数:对,
行宽:40,
滚动:0,
行数:100,
sortname:'ID',
寻呼机:“#寻呼机”,
分拣员:“asc”,
viewrecords:是的,
自动宽度:正确,
高度:“100%”,
是的,
jsonReader:{root:“GridData”,page:“CurrentPage”,total:“TotalPages”,records:“TotalRecords”,repeatitems:false,id:“0”}
};
DutyFTEGrid.prototype.SetupGrid=函数(选择器){
jQuery(selector.html(“”);
var grid=jQuery(“#grid”).jqGrid(this.gridConfiguration);
jQuery(“#grid”).jqGrid('navGrid','#pager',和,
{编辑:false,添加:false,搜索:false},{},{},
{//删除参数
ajaxDelOptions:{contentType:“application/json”},
mtype:“删除”,
序列化数据:函数(){
返回“”;
},
onclickSubmit:函数(参数、postdata){
params.url=serviceURL+'DutyFTE('+encodeURIComponent(postdata)+')/';
}
});
风险值网格=$(“#网格”);
var sum=grid.jqGrid('getCol','FTE',false,'sum');
jqGrid('footerData','set',{DriverEn:'Total FTE:',FTEValue:sum});
};

请帮忙,我试过你的例子,但由于某种原因它不起作用。

如果我理解你的意思,你想在页脚和方法中添加以下内容:

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


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

价格列的总计:

//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 + "$");

谢谢你,伙计,我累了,但我不知道为什么结果总是0!我被列名称弄错了,不管怎样,我现在放的是正确的,没有任何值出现,注意:单元格内的值像0一样浮动。3@Madi:如果要将数据计算为浮点,则应在列中定义浮点格式化程序。只需添加
formatter:'number'
在“金额”列中。如果没有帮助,你应该在问题后面附加完整的jqGrid定义和测试数据。是的,它确实改变了格式,但我仍然得到了0:00:S的总数,我不知道为什么,也许它在行初始化之前进行了计算?我已经用需要计算的jqGrid填充更新了问题FTEValue列
//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 + "$");