私の目的は、jqGridで複数レベルのグループ化を行い、各レベルのサマリーフッターを追加することです。jqGgrid:マルチレベルグループ化サマリー値
動的な3レベルのグループ化を行うために拡張したグループ化を動的に変更するために、コードを公式のウェブサイトで使用しました。
3つのコンボボックスを作成して、各レベルのグループ化に関連する列名を選択しました。
私はmutliレベルのグループ化を達成しましたが、ここではサマリーフッターがページごとであり、各グループのすべての行の合計ではありません。
私はいくつかのソリューションを試しました: このうちの1つ、このリンクに実装されたソリューションhttp://www.guriddo.net/demo/guriddojs/grouping/summary_and_grand_total/index.htmlしかし、それは私のために働いていません。
私はクライアント側の各グループの合計行を計算するためにsummaryType関数をカスタマイズしようとしましたが、できません。
ここでは、サーバー側の最初のレベルでグループ化されたリストを準備してから、クライアント側で「userdata」を使用してsummuryフッターを埋めるようにしました。 これは私の関数である:
var sumArraySearch = [];
var criteria = '';// column name selected in Combobox to do the grouping
function sumSearch(val, name, record)
{
if(init == 0){
// console.log ($("#griddata").jqGrid('getGridParam','userData').rows);
var rows = $("#griddata").jqGrid('getGridParam','userData').rows;
var size = $("#griddata").jqGrid('getGridParam','userData').rows.length;
for (var i = 0; i < size; i++) {
sumArraySearch[rows[i][criteria]]= rows[i]['brutto'];
}
init ++;
}
return sumArraySearch[record[criteria]];
}
そして、私は、サーバーから2つのリストを送信する場合、私は、今、ブロックされています:最初は、最初のレベルによってグループ化されたデータであり、第二には、どのような第2のレベルによってグループ化されたデータであります私は合計が1つの関数によって返されるので、各グループの正しい合計を取得しますか?
EDIT:
私は、問題を実証するためのJSFiddleデモを用意しました。
1)あなたのコードでは、 'loadonce:true'ではなく' loadOnce:true'を使います。オプションを修正する必要があります。 2)使用する(使用できる)jqGridの**バージョン**、およびjqGridの[** fork **]に関する情報を含めてください([free jqGrid](https://github.com/free-jqgrid)/jqGrid)、コマーシャル[Guriddo jqGrid JS](http://guriddo.net/?page_id=103334)またはバージョン<= 4.7の古いjqGrid)。 3)無料のjqGrid forkを使用している場合は、 'loadClientSorting:true'を追加することをお勧めします。これは' loadonce:true'オプションを拡張します。 4)問題を示すJSFiddleデモを準備するとよいでしょう。 – Oleg
作業デモにデータを用意してください。このようにして問題を探すことは可能です。 –
@Oleg:無料のjQgrid 4.4.3を使用しています。 4.7にバージョンをアップグレードするソリューションですか? – nayomi