团队 - 我正在使用Extjs v.3x并使用分组存储完全分组工作,但我似乎无法弄清楚如何渲染实际组(而不是基础记录)在每组的总数。
requestGrid = new Ext.ux.SearchPageingGridPanel({
height:500
//,title:'Application User Listing'
,store: trackerStore
,columns: userColumns // or define inline via columns
,collapsible:false
//,stateId : "requestsdffasdfd"
,header: true
,view: new Ext.grid.GroupingView({
forceFit:true,
showGroupName: true,
enableNoGroups:false,
enableGroupingMenu:false,
startCollapsed: true,
autoFill: true,
groupMode: 'display',
hideGroupedColumn: false,
groupTextTpl: ' ({[values.rs.length]} {[values.rs.length > 1 ? "Items" : "Item"]}) {text}'
})
,renderTo: 'grid-paneling'
});
以上是我使用GroupingView的代码,我想要做的是显示基于values.rs.lenght的组排序。
例如:如果我有3个小组。
(3项)列组名称 (6项)列组名称 (2项)列组名称
我想按此顺序显示。
(6项)列组名称 (3项)列组名称 (2项)列组名称
答案 0 :(得分:2)
以下是工作示例:http://jsfiddle.net/GzsDW/2/
我所做的基本上是创建一个列,其数据格式化,就像你想要的那样排序。在我的示例中,列名称为industry-count
。该列的值在datachanged
事件中计算。设置完所有内容后,会有applySort
来电。就是这样。
以下是datachanged
事件代码:
datachanged: function() {
var count = {};
var field = this.groupField.split('-')[0];
// count group values first
this.data.each(function(r) {
var v = r.get(field);
count[v] = 1 + (count[v] || 0);
}, this);
// create string like 99999998|Value and put it into industry-count field
this.data.each(function(r) {
var v = r.get(field);
r.data[this.groupField] = (99999999 - count[v]) + '|' + v;
}, this);
// sort by new values
this.applySort();
}