2016-10-16 10 views
1

私はこれを行う方法を理解するために何時間も探してきました。基本的には、1つの列に基づいてデータをグループ化し、そのグループのサマリーを作成し、そのサマリーに基づいてグループをソートします。ExtJS 6.2グリッドの並べ替えサマリー行に基づいたパネルのグループ化

キッチンシンクの例の1つを使用して、これらのグループをサマリーバリューレートで並べ替えることができます。

http://examples.sencha.com/extjs/6.0.0/examples/classic/grid/group-summary-grid.html

答えて

2

これはsorterFnハタを使用して行うことができます。 sorterFnは、並べ替えるサマリー値を比較する必要があります。

groupers: [{ 
    property: 'project', 
    sorterFn: function(a,b) { 

     var suma=0; store.each(function (rec) { suma += rec.data.project === a.data.project ? rec.data.estimate:0; }); 
     var sumb=0; store.each(function (rec) { sumb += rec.data.project === b.data.project ? rec.data.estimate:0; }); 

     if (suma > sumb) return 1; 
     if (suma < sumb) return -1; 
     return 0; 
     } 
}] 

ハタを使用して適用することができます。台所のシンクたとえば、あなたがプロジェクト列によってグループ化しながら、推定列の合計でソートしたい場合は、ハタは次のようになり、言及しました:

store.group(store.groupers[0]); 

はフィドルを参照してください:上昇方向にのみ起こってソートhttps://fiddle.sencha.com/#fiddle/1im3

+0

はありますか? – UDID

+0

あなたは、sorterFn(1と-1を切り替えます)の戻り値を変更することで方向を切り替えることができます。 – chrisuae

+0

Ya。とった。ありがとう – UDID

関連する問題