extjs grid summary 获取平均分数据,并传递object后后台,存储得到想要的数据。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/iamcookie/article/details/47145301

grid采用 ftype: 'summary' 来统计平均分,目前有个需求是导出grid数据到excel,且要将平均分也导出。

通过console.log,找到summary后的数据,分析typeOf为Object对象,因此通过Ext.encode将Object转成可传递的对象。

		var grid = btn.up('window').down('grid');
		var obj=grid.view.features[0].summaryData;
		var summaryData=Ext.encode(obj);	
传递后后台,需要的实际数据是obj中的实际值,所以就考虑将string通过split分割存储到hashmap中,这里采用LinkedHashMap的作用是保证按照顺序存储我传递过来的参数。最后通过Collection 获取map的value集合,然后放入list,关键代码如下。
		String summaryDataStr=request.getParameter("summaryData"); //存储最后的平均分
		summaryDataStr=summaryDataStr.substring(1, summaryDataStr.length()-1);
		String[] summaryData=summaryDataStr.split(",");
		LinkedHashMap<String, Object> map = new LinkedHashMap<String, Object>();  
		 for (String str : summaryData) {  
			 String[] keyText = str.split(":"); // 转换key与value的数组  
			  if (keyText.length < 1) {  
	                continue;  
	            }  
	            String key = keyText[0]; // key  
	            String value = keyText[1]; // value  
	            if(!"null".equals(value) && value!=""){
	            	 double d = Double.parseDouble(keyText[1]);
	            	 value=df.format(d);
	            }
	            map.put(key, value);  
	    } 
		 Collection c = map.values();
	     List list = new ArrayList(c);



展开阅读全文

没有更多推荐了,返回首页