KendoGrid Aggregate
HTML
<link rel="stylesheet" href="http://cdn.kendostatic.com/2013.1.514/styles/kendo.common.min.css">
<link rel="stylesheet" href="http://cdn.kendostatic.com/2013.1.514/styles/kendo.default.min.css">
<script src="http://cdn.kendostatic.com/2013.1.514/js/kendo.all.min.js"></script>
<div id="example" class="k-content">
<div id="grid"></div>
</div>
JavaScript
function aggregateCurrentPage(grid) {
var columns = grid.columns;
var data = grid.dataSource.data().toJSON();
var totalPages = grid.dataSource.totalPages();
var currentPage = grid.dataSource.page();
var pageSize = grid.dataSource.pageSize();
var aggregate = grid.dataSource.aggregate();
var row_template = '';
var col_template = '';
var template_data = {};
var template;
var result;
grid.element.find('tfoot').remove();
for (var i in columns) {
switch (columns[i].aggregate) {
case 'count':
var count = 0;
if (currentPage * pageSize <= data.length) count = pageSize;
else count = data.length % pageSize;
template_data.count = count;
break;
case 'sum':
var sum = 0;
$.each(data, function (index, record) {
if (currentPage * pageSize <= data.length) {
if (index >= (currentPage - 1) * pageSize && index < currentPage * pageSize) {
sum += parseInt(record[columns[i].field]);
} else if (index >= currentPage * pageSize) {
return false;
} else {
return;
}
}
});
template_data.sum = sum;
break;
default:
}
col_template = columns[i].footTemplate || ' ';
row_template += '<td>' + col_template + '</td>';
}
template = kendo.template('<tfoot class="k-grid-footer"><tr class="k-footer-template">' + row_template + '</tr></tfoot>');
result = template(template_data);
grid.element.find('table').append(result);
}
$(document).ready(function () {
$("#grid").kendoGrid({
dataSource: {
type: "odata",
transport: {
read:...