为什么我按照大家增加合计行 但是不显示合计行
}
$('#tableData').datagrid({
title:finalTitle,
url: CTX + '/board/LTB24HourOutBoard/!queryDataDetail',
queryParams: {
mailCategory: mailCategory,
scopeLevel: scopeLevel,areaCode: areaCode,
mailDate: mailDate
},
onLoadSuccess: function (data) {
controlHref();
$('#tableData').datagrid('statistics');//sum
}
});
/datagrid合计扩展
$.extend($.fn.datagrid.methods, {
statistics: function (jq) {
var opt = $(jq).datagrid('options').columns;
var rows = $(jq).datagrid("getRows");
var footer = new Array();
footer['sum'] = "";
for (var i = 0; i < opt[0].length; i++) {
if (opt[0][i].sum) {
footer['sum'] = footer['sum'] + sum(opt[0][i].field) + ',';
}
}
var footerObj = new Array();
if (footer['sum'] != "") {
var tmp = '{' + footer['sum'].substring(0, footer['sum'].length - 1) + "}";
var obj = eval('(' + tmp + ')');
if (obj[opt[0][0].field] == undefined) {
footer['sum'] += '"' + opt[0][0].field + '":"<b>合计:</b>"';
obj = eval('({' + footer['sum'] + '})');
} else {
obj[opt[0][0].field] = "<b>合计:</b>" + obj[opt[0][0].field];
}
footerObj.push(obj);
}
if (footerObj.length > 0) {
////test
for (var i = 0, l = footerObj.length; i < l; i++) {
for (var key in footerObj[i]) {
alert(key + ':' + footerObj[i][key]);
}
}
$(jq).datagrid('reloadFooter', footerObj);
}
function sum(filed) {
var sumNum = 0;
for (var i = 0; i < rows.length; i++) {
sumNum += Number(rows[i][filed]);
}
return '"' + filed + '":"' + sumNum.toFixed(0) + '"';
}
}
});
}
$('#tableData').datagrid({
title:finalTitle,
url: CTX + '/board/LTB24HourOutBoard/!queryDataDetail',
queryParams: {
mailCategory: mailCategory,
scopeLevel: scopeLevel,areaCode: areaCode,
mailDate: mailDate
},
onLoadSuccess: function (data) {
controlHref();
$('#tableData').datagrid('statistics');//sum
}
});
/datagrid合计扩展
$.extend($.fn.datagrid.methods, {
statistics: function (jq) {
var opt = $(jq).datagrid('options').columns;
var rows = $(jq).datagrid("getRows");
var footer = new Array();
footer['sum'] = "";
for (var i = 0; i < opt[0].length; i++) {
if (opt[0][i].sum) {
footer['sum'] = footer['sum'] + sum(opt[0][i].field) + ',';
}
}
var footerObj = new Array();
if (footer['sum'] != "") {
var tmp = '{' + footer['sum'].substring(0, footer['sum'].length - 1) + "}";
var obj = eval('(' + tmp + ')');
if (obj[opt[0][0].field] == undefined) {
footer['sum'] += '"' + opt[0][0].field + '":"<b>合计:</b>"';
obj = eval('({' + footer['sum'] + '})');
} else {
obj[opt[0][0].field] = "<b>合计:</b>" + obj[opt[0][0].field];
}
footerObj.push(obj);
}
if (footerObj.length > 0) {
////test
for (var i = 0, l = footerObj.length; i < l; i++) {
for (var key in footerObj[i]) {
alert(key + ':' + footerObj[i][key]);
}
}
$(jq).datagrid('reloadFooter', footerObj);
}
function sum(filed) {
var sumNum = 0;
for (var i = 0; i < rows.length; i++) {
sumNum += Number(rows[i][filed]);
}
return '"' + filed + '":"' + sumNum.toFixed(0) + '"';
}
}
});
解决方案 »
- 求仿京东彩票那栏的源代码
- jquery html()方法中放入iframe,如何出现loading效果
- JS如何取超链接中的参数?
- javascript:window.top.space_addItem(7,10104,0,0,0,1,0); 海底世界 这个代码是什么意思呀?
- IE中setAttribute的问题
- 可不可以通过JAVASCRIPT来运行一个批处理文件啊?
- 帮忙推荐一个能方便编译javascript的软件吧
- iframe里的网页,怎么实现控制他的parent网页的滚动条的位置,好像“parent.scrollTop=200”不行
- 如何将搜索出来的人员以数组的形式返回给opener?
- 网页中的activex的CAB文件下载后,自动解压后放在那个地方了?
- js alert()调用了一次窗口弹出两次
- 自创函数库简化版0.01发布,含有JavaScript和PHP函数库,写得不好的地方还望指点,以后有时间会继续更新版本,在各位高手前献丑了
而且easyui自带那种统计显示,只要后台传对参数就好了
我和datagrid 是在界面画好了 然后加进去的 不知道是什么原因呢
你说神奇不神奇
我是这样加载datagrid的 数据
title: finalTitle,
url: CTX + '/board/LTB24HourOutBoard/!queryData',
showFooter: true,
queryParams: {group:group,mailCategory: $("#mailCategory").combobox("getValue"), mechanism: " ",
startDate: $("#startDate").datebox("getValue"),
endDate: $("#endDate").datebox("getValue"), scopeLevel:scopeLevel,
areaCode:code,mailDate:"" },
onLoadSuccess: function (data) {
controlHref();
if(data.total>0){
alert("sum");
$('#tableData').datagrid('statistics');
//合计扩展
$.extend($.fn.datagrid.methods,
{
statistics: function (jq) {
var opt = $(jq).datagrid('options').columns;
var rows = $(jq).datagrid("getRows");
var footer = new Array();
footer['sum'] = "";
for (var i = 0; i < opt[0].length; i++) {
if (opt[0][i].sum) {
footer['sum'] = footer['sum'] + sum(opt[0][i].field, 1) + ',';
}
}
var footerObj = new Array();
if (footer['sum'] != "") {
var tmp = '{' + footer['sum'].substring(0, footer['sum'].length - 1) + "}";
var obj = eval('(' + tmp + ')');
if (obj[opt[0][0].field] == undefined) {
footer['sum'] += '"' + opt[0][0].field + '":"<b>合计:</b>"'; //第0列显示为合计
obj = eval('({' + footer['sum'] + '})');
}
else {
obj[opt[0][0].field] = "<b>合计:</b>" + obj[opt[0][0].field];
}
footerObj.push(obj);
}
if (footerObj.length > 0) { $(jq).datagrid('reloadFooter', footerObj); }
function sum(filed) {
var sumNum = 0;
var str = "";
for (var i = 0; i < rows.length; i++) {
var num = rows[i][filed];
sumNum += Number(num);
}
return '"' + filed + '":"' + sumNum.toFixed(2) + '"';
}
}
});
2.然后我又在官方api 上找到
var rows = $('#dg').datagrid('getFooterRows');
rows[0]['name'] = 'new name';
rows[0]['salary'] = 60000;
$('#dg').datagrid('reloadFooter');
第二种方法我得不到rows 这是不是说没有footer 难道在初始化的时候要给footer 赋值吗 具体怎么搞 要死啦 要死啦
{"productid":"FI-SW-01","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"},
{"productid":"K9-DL-01","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"},
{"productid":"RP-SN-01","unitcost":12.00,"status":"P","listprice":28.50,"attr1":"Venomless","itemid":"EST-11"},
{"productid":"RP-SN-01","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"},
{"productid":"RP-LI-02","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"},
{"productid":"FL-DSH-01","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"},
{"productid":"FL-DSH-01","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"},
{"productid":"FL-DLH-02","unitcost":12.00,"status":"P","listprice":63.50,"attr1":"Adult Female","itemid":"EST-16"},
{"productid":"FL-DLH-02","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"},
{"productid":"AV-CB-01","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"}
],"footer":[
{"unitcost":19.80,"listprice":60.40,"productid":"Average:"},
{"unitcost":198.00,"listprice":604.00,"productid":"Total:"}
]}
$('#tableData').datagrid({
loadFilter: function(data){
//在这里计算,结果是json格式的对象,放到下面XXX
var value = {
total:data.total,
rows:data.rows,
footer:XXX
};
return value;
}
});