Ext中Grid所有分页汇总 ——后台操作数据(PageImpl返回数据)

来源:互联网 发布:淘宝生意参谋 编辑:程序博客网 时间:2024/06/05 18:16

统计所有分页中某一行的数据的总值,在网上找了很多方法,什么gridSummary、GroupSummary都试过,最后还是未能决解问题,他们大多数是统计一页的,虽然也有一篇能达到我想要的效果,但对于一个Ext新手来说太难。现在说说我的决解方法。

结果图:


统计总收入,这是所有分页的统计,翻页并不影响该值。

 

主要思想:原本显示15行,现在让它显示16行,后台在返回数据时,添加多一条记录,前端Ext操作数据时用renderer判断数据,显示自己需要的效果,例如上图的“总收人:”

 

废话不多说,上代码:

后台代码:

         @RequestMapping("/findPage")

     public @ResponseBody Page<Order>findAll(ExtjsPageable pageable)

     {

         //统计总金额

         List<Order>orderList =orderService.findAll();//查找所有符合条件的数据记录

         floattotalPrice = 0;

         for(Ordero:orderList){

              totalPrice = totalPrice+o.getPrice();//遍历将所有记录的price相加得到总金额

         }

         //在分页记录中追加一条,用于显示总金额

         Page<Order>pages = orderService.findAll(pageable.getPageable());

         List<Order>lists = new ArrayList<>();

         lists.addAll(pages.getContent());

        

         Orderorder = new Order();

         order.setTotalPrice(totalPrice);// totalPriceOrder实体类的一个属性

         lists.add(order);//追加记录

         return new PageImpl<>(lists,pageable.getPageable(),pages.getTotalElements());//这才是重点(返回数据)

     }

 

前端代码:

columns: [

                            …

                            {header: '价格',sortable:true ,dataIndex:'price' ,flex:1

                            ,renderer:function(value, metaData, record, rowIdx, colIdx, store, view){

                if(record.get('totalPrice')>0){

                                                        return'总收入:'+Ext.util.Format.usMoney(record.get('totalPrice'));

                                          }

                                          else{

                                                        returnvalue;

                                          }          

 }]

 

基本是上面的代码了,能够勉强地达到想要效果,虽然还并不完美,但希望能帮到像自己一样的新手。

来自一位小白的分享。

前端grid.js :http://download.csdn.net/download/qq_35288245/10010410


阅读全文
1 0
原创粉丝点击