[ フッター配置例 ]
[ ヘッダー配置例 ]
[ jqGrid コード例 ]
デフォルトはフッター
footerrow, userDataOnFooter を true にする
footerrow: true,
userDataOnFooter: true,
ヘッダーにしたい時は、gridComplete で DOM操作して明細行と合計行の位置を入れ替える
// フッター合計を上にする, 境界線スタイルを変える //
var dtlobj = $('#gview_asivlist').children('div').eq(3); // 明細行
var fttlobj = $('#gview_asivlist').children('div').eq(4); // 合計行
$(fttlobj).css({
"border-bottom-style": "solid",
"border-bottom-color": '#008600',
"border-bottom-width": "2px"
}).insertBefore($(dtlobj));
[ Servlet コード例 ]
集計値用マップ
// +++ 結果メッセージ用 +++ //
HashMap<String, String> usrdata = new HashMap<String, String>();
検索後、集計値を格納
/**
* テーブルスキーマ情報取得
*
* @param usrdata 合計値マップ
* @return テーブルスキーマ型リスト
*/
public ArrayList<TableSchema> getTableSchemaList(HashMap<String, String> usrdata) {
List list = null;
try (SqlSession session = sqlSessionFactory.openSession()) {
list = session.selectList("selTableSchemaList", this);
System.out.println("getTableSchemaList ():" + list.size());
// フッター用 //
// ストリームで合計を格納 //
ArrayList<TableSchema> slist = new ArrayList(list);
int cntRow = (int)slist.stream().count(); // 件数 long なので intにキャスト
int colTotal = slist.stream().mapToInt(v -> v.getCntCol()).sum(); // 列数
int rowTotal = slist.stream().mapToInt(v -> v.getCntRow()).sum(); // 行数
int totalTotal = slist.stream().mapToInt(v -> v.getLenTotal()).sum(); // 合計サイズ
int dataTotal = slist.stream().mapToInt(v -> v.getLenData()).sum(); // データサイズ
int indexTotal = slist.stream().mapToInt(v -> v.getLenIndex()).sum(); // インデックスサイズ
// HashMapに追加 //
usrdata.put("cntCol", String.valueOf(colTotal));
usrdata.put("cntRow", String.valueOf(rowTotal));
usrdata.put("lenTotal", String.valueOf(totalTotal));
usrdata.put("lenData", String.valueOf(dataTotal));
usrdata.put("lenIndex", String.valueOf(indexTotal));
usrdata.put("comment", " Total " + String.valueOf(cntRow) + " Tables" );
}
catch (Exception se) {
se.printStackTrace();
}
return new ArrayList(list);
}
応答JSONのセット
// +++ 結果返却用 +++ //
JSONResultGrid loggrid = new JSONResultGrid();
loggrid.setPage(1);
loggrid.setTotal(1);
loggrid.setRows(loglist);
loggrid.setUserdata(usrdata);
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String gsonstr = gson.toJson(loggrid);
応答データ
"userdata": {
"cntRow": "27494440",
"lenTotal": "4135942",
"cntCol": "1689",
"lenData": "2479938",
"comment": " Total 173 Tables",
"lenIndex": "1656004",
"sidx": "1"
}