extjs 求和功能

在grid中,总共有五个评委打分,平均分为得分的平均值,但是如果哪个评委没有打分,则计算平均分时,该评委不算入总人数。

定义列模型中的相关部分如下:

[plain] view plain copy
  1. {  
  2.         header : "平均得分",  
  3.         autoWidth : true,  
  4.         dataIndex : "scoreAve",  
  5.         sortable : true,  
  6.         align: "center",  
  7.         type: "numberfield",  
  8.         renderer: function(value, metadata, record, rowIndex, colIndex, store) {  
  9.             // 计算平均值,如果某一评委未打分,则计算平均分时该评委不计入总人数  
  10.             var aveValue = 0;  
  11.             var num = 0;  
  12.             if(record.get("scoreOne")) {  
  13.                 aveValue += record.get("scoreOne");  
  14.                 num ++;  
  15.             }  
  16.             if(record.get("scoreTwo")) {  
  17.                 aveValue += record.get("scoreTwo");  
  18.                 num ++;  
  19.             }  
  20.             if(record.get("scoreThree")) {  
  21.                 aveValue += record.get("scoreThree");  
  22.                 num ++;  
  23.             }  
  24.             if(record.get("scoreFour")) {  
  25.                 aveValue += record.get("scoreFour");  
  26.                 num ++;  
  27.             }  
  28.             if(record.get("scoreFive")) {  
  29.                 aveValue += record.get("scoreFive");  
  30.                 num ++;  
  31.             }  
  32.             if(num != 0) {  
  33.                 return parseFloat(aveValue/num).toFixed(2);// 保留两位小数  
  34.             } else {  
  35.                 return "";// num=0表示没有评委进行打分,所以不显示平均分  
  36.             }  
  37.         }  
  38.     }, {  
  39.         header : "评委一得分",  
  40.         autoWidth : true,  
  41.         dataIndex : "scoreOne",  
  42.         sortable : true,  
  43.         align: "center",  
  44.         editor: new Ext.form.NumberField({  
  45.             allowNegative: false  
  46.         })  
  47.     }, {  
  48.         header : "评委二得分",  
  49.         autoWidth : true,  
  50.         dataIndex : "scoreTwo",  
  51.         sortable : true,  
  52.         align: "center",  
  53.         editor: new Ext.form.NumberField({  
  54.             allowNegative: false  
  55.         })  
  56.     }, {  
  57.         header : "评委三得分",  
  58.         autoWidth : true,  
  59.         dataIndex : "scoreThree",  
  60.         sortable : true,  
  61.         align: "center",  
  62.         editor: new Ext.form.NumberField({  
  63.             allowNegative: false  
  64.         })  
  65.     }, {  
  66.         header : "评委四得分",  
  67.         autoWidth : true,  
  68.         dataIndex : "scoreFour",  
  69.         sortable : true,  
  70.         align: "center",  
  71.         editor: new Ext.form.NumberField({  
  72.             allowNegative: false  
  73.         })  
  74.     }, {  
  75.         header : "评委五得分",  
  76.         autoWidth : true,  
  77.         dataIndex : "scoreFive",  
  78.         sortable : true,  
  79.         align: "center",  
  80.         editor: new Ext.form.NumberField({  
  81.             allowNegative: false  
  82.         })  
  83.     },   


实际效果如下:

你可能感兴趣的:(extjs 求和功能)