Json JQgrid总金额行
我在jqgrid中看到了@Oleg为row total sum提供的示例,但我尝试应用它,但它不起作用。我有下面的网格,我需要计算它的金额值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
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 + "$");