|
<ejs-grid id="Grid" dataSource="@ViewBag.DataSource" allowPaging="true">
<e-grid-aggregates>
<e-grid-aggregate>
<e-aggregate-columns>
<e-aggregate-column field="Freight" type="Sum" footerTemplate="Grand Total:${Sum}"></e-aggregate-column>
</e-aggregate-columns>
</e-grid-aggregate>
<e-grid-aggregate>
<e-aggregate-columns>
<e-aggregate-column field="Freight" type="Custom" footerTemplate="Page Total:${Custom}" customAggregate="@("customAggregateFn")"></e-aggregate-column>
</e-aggregate-columns>
</e-grid-aggregate>
</e-grid-aggregates>
<e-grid-pagesettings pageCount="5"></e-grid-pagesettings>
<e-grid-columns>
<e-grid-column field="Freight" headerText="Freight" textAlign="Right" format="C2" width="160"></e-grid-column>
. . .
</e-grid-columns>
</ejs-grid>
<script>
function customAggregateFn(data, aggColumn) {
var grid = document.getElementsByClassName('e-grid')[0].ej2_instances[0]
// Queried the result with Grid page size and required aggregate using EJ2 DataManager
return new ej.data.DataManager(data.result).executeLocal(
new ej.data.Query().skip
.take(grid.pageSettings.pageSize)
.requiresCount()
.aggregate('sum', aggColumn.columnName)
).aggregates[aggColumn.columnName +' - sum'];
}
</script>
|