统计行不参与grid中行的排序。
ExtJs统计行展示
通用方式:分页查询后,后台组织生成json数据,最后一行统计的信息行,然后返回到前台。
json.append("{prjid:'',prjtype:''," +
"dirid:'',prjsource:''," +
"buildState:'',year:''," +
"code:'汇总',name:''," +
"manager:'',managerName:'',state:''," +
"totalinvestment:'"+map.get("to") +"',designamount:'"+map.get("de")+"'," +
"contractquantity:'"+map.get("cy")+"',contractamount:'"+map.get("ct")+"'," +
"orderamount:'"+map.get("ot")+"',finalaccountsamount:'"+map.get("ft")+"'," +
"planfinishdate:'',factfinishdate:''," +
"builddepartment:'',builddepartmentName:'',capitalScale:''," +
"rateScale:'',singleflag:'0'}");
//排序规则 sortInfo: {field: 'totalinvestment', direction: 'ASC', field: 'designamount', direction: 'ASC'}, sortData: function(field, direction){ direction = direction || 'ASC'; var dir = direction == 'ASC' ? 1 : -1; var st = this.fields.get(field).sortType; //关键地方,重写排序规则 var fn = function(r1, r2){ if(!r1.get('prjid')||!r2.get('prjid')){ //数据永远在最后一行 return !r1.get('prjid') ? dir : -dir; }else{ var v1 = st(r1.data[field]), v2 = st(r2.data[field]); return v1 > v2 ? 1 : (v1 < v2 ? -1 : 0); } }; this.data.sort(direction, fn); if(this.snapshot && this.snapshot != this.data){ this.snapshot.sort(direction, fn); } }
API:
sort ( String/Array fieldName , [ String dir ] ) : void
对记录进行排序。如果使用远程排序,将在服务端进行排序操作, 然后刷新缓存。...
对记录进行排序。如果使用远程排序,将在服务端进行排序操作, 然后刷新缓存。 如果使用本地排序,缓存将在内部排序。
另请参见 remoteSort 和 paramNames。
此函数接受两种调用参数-将字段名作为第一个参数传递进来, 或者将多条件联合排序的配置对象作为一个数组传递进来。
单条件排序示例:store.sort('name', 'ASC');多条件联合排序 示例store.sort([ { field : 'name', direction: 'ASC' }, { field : 'salary', direction: 'DESC' } ], 'ASC');
在以上的第二种形式中,排序参数将会被依次应用, 后面的排序器将在前面排序器产生的结果上进行再次排序操作。
例如,依照上面的排序配置, 如果存在具有相同名字的两条记录,它们将会按照薪水进行排序。
排序配置可以添加任意多个。
参数:
1、fieldName : String/Array
进行排序的字段名,或者一个整理好的排序配置数组
2、dir : String
(可选) 排列顺序,'ASC' 或者 'DESC' (大小写敏感,默认为 'ASC')
返回值:
void