xiaofei1232 发表于 2018-6-1 08:36:26

在页面把购买总结做个合计 想把数据显示成为国际通用格...

在页面把购买总结做个合计 想把数据显示成为国际通用格式 如:61,100.00 这样 .但是显示在页面上显示的时候把逗号后面的都截掉了 只显示61


admin 发表于 2018-6-1 10:03:33

页面效果截图

xiaofei1232 发表于 2018-6-1 10:40:36

admin 发表于 2018-6-1 10:03 static/image/common/back.gif
页面效果截图

不好意思 回复我不会发图片 ,不过页面效果图在上面有, 就是最下面那个, 合计那一行,有个61, 但是这后台输出的是61,100

shaoqunchao 发表于 2018-6-5 15:29:21

一、在src/main/java/org/jeecgframework/tag/core/easyui/TagUtil.java文件中加入以下代码用来处理json格式的数据


/**
       * 循环LIST对象拼接EASYUI格式的JSON数据Footers是json格式的数据
       * @param fields
       * @param total
       * @param list
       * @param dataStyle
       * @param page
       */
        private static String listtojsonByFootersJson(String[] fields, int total, List<?> list,String footers, String dataStyle, int pageSize) throws Exception {
                StringBuffer jsonTemp = new StringBuffer();
                if("jqgrid".equals(dataStyle)){
                        int totalPage = total % pageSize > 0 ? total / pageSize + 1 : total / pageSize;
                        if(totalPage == 0) totalPage = 1;
                        jsonTemp.append("{\"total\":" + totalPage );
                }else{
                        jsonTemp.append("{\"total\":" + total );
                }
                jsonTemp.append(",\"rows\":[");
                int i;
                String fieldName;
                if(list==null){
                        list = new ArrayList();
                }
                for (int j = 0; j < list.size(); ++j) {
                        jsonTemp.append("{\"state\":\"closed\",");
                        Object fieldValue = null;
                        for (i = 0; i < fields.length; ++i) {
                                fieldName = fields.toString();
                                if (list.get(j) instanceof Map)
                                        fieldValue = ((Map<?, ?>) list.get(j)).get(fieldName);
                                else {
                                        fieldValue = fieldNametoValues(fieldName, list.get(j));
                                }
                                jsonTemp.append("\"" + fieldName + "\"" + ":\"" + getStringValue(fieldValue).replace("\"", "\\\"") + "\"");
                                if (i != fields.length - 1) {
                                        jsonTemp.append(",");
                                }
                        }
                        if (j != list.size() - 1)
                                jsonTemp.append("},");
                        else {
                                jsonTemp.append("}");
                        }
                }
                jsonTemp.append("]");
                if (footers != null) {
                        jsonTemp.append(",");
                        jsonTemp.append("\"footer\":[");
                        JSONArray js=JSONArray.parseArray(footers);
                        for(int f=0;f<js.size();f++){
                                jsonTemp.append("{");
                                Map <String,Object>map=(Map) js.get(f);
                                for(String key:map.keySet()){
                                        if(StringUtil.isEmpty(map.get(key).toString())){
                                                jsonTemp.append("\"" + key + "\":\"" + getTotalValue(key, list) + "\",");
                                        }else{
                                                jsonTemp.append("\"" + key + "\":\"" + map.get(key).toString() + "\",");
                                        }
                                }
                                jsonTemp.append("},");
                        }
                        jsonTemp.append("]");
                }
                jsonTemp.append("}");
                return jsonTemp.toString();
        }

shaoqunchao 发表于 2018-6-5 15:55:53

二、跳转到418行,找到private static JSONObject getJson(DataGrid dg) {这个方法,把方法里边的内容替换掉
JSONObject jObject = null;
                try {
                        if(!StringUtil.isEmpty(dg.getFooter())){
                                if(dg.getFooter().startsWith("[")){
                                        jObject = JSONObject.parseObject(listtojsonByFootersJson(dg.getField().split(","), dg.getTotal(), dg.getResults(),dg.getFooter(),dg.getDataStyle(),dg.getRows()));
                                }else{
                                        jObject = JSONObject.parseObject(listtojson(dg.getField().split(","), dg.getTotal(), dg.getResults(),dg.getFooter().split(","),dg.getDataStyle(),dg.getRows()));
                                }
                        }else{
                                jObject = JSONObject.parseObject(listtojson(dg.getField().split(","), dg.getTotal(), dg.getResults(),null,dg.getDataStyle(),dg.getRows()));
                        }
                } catch (Exception e) {
                        e.printStackTrace();
                }
                return jObject;

三、使用方法(如果需要合计的字段值为空的话,那么他会自动合计当前页的数据)
dataGrid.setFooter("[{'salary':'6,1300.00','age':'','name':'合计'}]");
页: [1]
查看完整版本: 在页面把购买总结做个合计 想把数据显示成为国际通用格...