Group and caption aggregate in Vue Grid component
16 Mar 20235 minutes to read
Group and caption aggregate values are calculated from the current group items.
If groupFooterTemplate
is provided then the aggregate values can be displayed in the group footer cells and if groupCaptionTemplate
is provided then aggregate values can be displayed in the group caption cells.
<template>
<div id="app">
<ejs-grid :dataSource='data' height='290px' :allowGrouping="true" :groupSettings="groupOptions">
<e-columns>
<e-column field='OrderID' headerText='Order ID' textAlign='right' width=120></e-column>
<e-column field='CustomerID' headerText='Customer ID' width=150></e-column>
<e-column field='OrderDate' headerText='Order Date' format='yMd' width=120 type='date'></e-column>
<e-column field='Freight' format='C2' width=150></e-column>
<e-column field='ShipCountry' headerText='Ship Country' width=150></e-column>
</e-columns>
<e-aggregates>
<e-aggregate>
<e-columns>
<e-column type="Sum" field="Freight" format="C2" :groupFooterTemplate ='footerSum'></e-column>
</e-columns>
</e-aggregate>
<e-aggregate>
<e-columns>
<e-column type="Average" field="Freight" format="C2" :groupCaptionTemplate ='footerAvg'></e-column>
</e-columns>
</e-aggregate>
</e-aggregates>
</ejs-grid>
</div>
</template>
<script>
import Vue from "vue";
import { GridPlugin, Group, Aggregate } from "@syncfusion/ej2-vue-grids";
import { data } from './datasource.js';
Vue.use(GridPlugin);
export default {
data() {
return {
data: data,
groupOptions: {showDropArea: false, columns: ['ShipCountry'] },
footerSum: function () {
return { template : Vue.component('sumTemplate', {
template: `<span>Sum: </span>`,
data () {return { data: {}};}
})
}
},
footerAvg: function () {
return { template : Vue.component('maxTemplate', {
template: `<span>Average: </span>`,
data () {return { data: {}};}
})
}
}
};
},
provide : {
grid: [Group, Aggregate]
}
}
</script>
<style>
@import "../node_modules/@syncfusion/ej2-vue-grids/styles/material.css";
</style>
- Use the template reference property name as
groupFooterTemplate
to specify the group footer template and asgroupCaptionTemplate
to specify the group caption template.- The aggregate values must be accessed inside the template using their corresponding
type
name.