特定の列の要約を計算し、それをグリッドのフッターにロードする関数があります。コードは次のとおりです。
$(function () {
var gridData = null;
var nn = null;
grid = $("#gridId"),
calculateTotal = function () {
var gridData = grid.jqGrid('getGridParam', 'data'),
i = 0, totalAmount = 0, totalduration = 0;
for (; i < gridData.length; i++) {
var rowData = gridData[i];
totalAmount += Number(rowData.price);
totalduration += Number(rowData.duration);
}
grid.jqGrid('footerData', 'set', { name: "TOTAL", duration: totalduration, price: totalAmount });
};
});
ここで、この集計関数を呼び出しています...
$.ajax({
url: 'Default.aspx/MyMethod',
dataType: 'json',
contentType: "application/json; charset=utf-8",
type: 'POST',
success: function (ReportDataNew, textStatus, XMLHttpRequest) {
//debugger;
gridData = JSON.parse(ReportDataNew.d);
console.log(gridData);
//alert(gridData.length);
$("#gridId").jqGrid({
data: gridData,
datatype: "local",
height: '100%',
autowidth: true,
ignoreCase: true,
rowNum: 50,
rowList: [50, 100, 200],
colNames: ['UserName', 'Duration', 'Destination', 'Price'],
colModel: [
{ name: 'username', index: 'username', width: 100, sortable: true, align: 'center' },
{ name: 'duration', index: 'duration', width: 100, sortable: true, align: 'center' },
{ name: 'destination', index: 'destination', width: 100, sortable: true, align: 'center' },
{ name: 'price', index: 'price', width: 100, sortable: true, align: 'center', formatter: 'currency' }
],
pager: '#gridpager',
viewrecords: true,
toppager: true,
loadtext: 'Loading...',
footerrow: true,
userDataOnFooter: true,
loadComplete: function () {
calculateTotal();
}
});
しかし、フッター行の集計値は、フィルター ツールバーからレコードをフィルター処理しても同じままです...フィルター ツールバーからのフィルター処理時または検索後に、フッターの集計値を更新する必要があります...
どんな助けでも大歓迎です/。事前にThnx..