统计行不参与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
本文介绍了一种在ExtJS框架中实现统计行的方法,通过在分页查询后组织JSON数据来展示汇总信息,并确保该行不参与排序。此外,还提供了具体的排序规则设置示例。
4392

被折叠的 条评论
为什么被折叠?



