Я использую плагин jquery с данными на своем сайте. Все работает хорошо.
Однако я пытаюсь улучшить таблицу, используя фильтр столбца скрипта плагина, а затем я хочу суммировать данные в нижнем колонтитуле. Я могу заставить фильтр работать правильно.
Пример в таблицах данных для суммирования данных работает только на странице данных или на всем наборе данных.
Я нашел эту тему: http://datatables.net/forums/discussion/2053/fnfootercallback-sum-column-after-filter/p1 в поисках аналогичного решения. Автор предлагает следующую функцию:
._('td:nth-child(4)', {"filter": "applied"})
Очевидно, это возвращает объект отфильтрованных данных. Однако, когда у меня есть это, я не знаю, с чего начать добавлять данные
На данный момент мой скрипт с данными (укороченный ради поста) выглядит так:
table.dataTable({...
"fnFooterCallback": function ( nRow, aaData, iStart, iEnd, aiDisplay ) {
/*
* Calculate the total sales for the table (ie inc. outside
* the pagination)
*/
var iTotalSales = 0;
for ( var i=0 ; i<aaData.length ; i++ )
{
iTotalSales += aaData[i][2]*1;
}
/* Calculate the total sales on this page */
var iPageSales = 0;
for ( var i=iStart ; i<iEnd ; i++ )
{
iPageSales += aaData[ aiDisplay[i] ][2]*1;
}
/* Modify the footer row to match what we want */
var secondRow = $(nRow).next()[0];
var nCells = secondRow.getElementsByTagName('td');
nCells[0].innerHTML = accounting.formatMoney(iPageSales, "£ ", 2) +
' Page Total ('+ accounting.formatMoney(iTotalSales, "£ ", 2) +' Total Sales)';
}
})
.columnFilter({
aoColumns: [ { type: "date-range" },
null,
{ type: "text" },
{ type: "text" },
{ type: "select" },
{ type: "select" }
]
})
._('td:nth-child(4)', {"filter": "applied"});
В настоящее время у меня есть сводка, как указано выше, которая отображает общее количество отфильтрованных на странице по сравнению с общим количеством таблицы (все данные не просто отфильтрованы)
Я новичок в jquery - я не уверен, с чего начать манипулировать объектом, созданным в финальном вызове.
Спасибо