为什么我按照大家增加合计行 但是不显示合计行
      }
$('#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) + '"';
            }
        }
    }); 

解决方案 »

  1.   

    连接左侧找Footer Rows in DataGrid  自己看吧
      

  2.   

    showFooter: true
    而且easyui自带那种统计显示,只要后台传对参数就好了
      

  3.   

    我加了 也不行呢  
    我和datagrid 是在界面画好了 然后加进去的 不知道是什么原因呢
    你说神奇不神奇
    我是这样加载datagrid的 数据
      

  4.   

    这问题找了一天了呢  我试过好几种方法1.扩展合计方法$('#tableData').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 赋值吗  具体怎么搞 要死啦 要死啦 
      

  5.   

    你用第三种吧 需要添加数据footer{"total":28,"rows":[
    {"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:"}
    ]}
      

  6.   

    可是我的footer  数据 要怎么在前台设置
      

  7.   


    $('#tableData').datagrid({
        loadFilter: function(data){  
                    //在这里计算,结果是json格式的对象,放到下面XXX
                    var value = {  
                            total:data.total,  
                            rows:data.rows,
                            footer:XXX
                    }; 
            return value;
        }
    });