Aggregates in Angular Treegrid component
17 Nov 20224 minutes to read
Aggregate values are displayed in the TreeGrid footer and in parent row footer for child row aggregate values. It can be configured through aggregates
property. field
and type
are the minimum properties required to represent an aggregate column.
To use the aggregate feature, you have to inject the Aggregate
module.
By default, the aggregate value can be displayed in the treegrid footer, and footer of child rows. To show the aggregate value in one of the cells, use the footerTemplate
.
You can also check this video to learn about how to use Aggregates in Angular TreeGrid.
Built-in aggregate types
The aggregate type should be specified in the type
property to configure an aggregate column.
The built-in aggregates are,
- Sum
- Average
- Min
- Max
- Count
- Truecount
- Falsecount
- Multiple aggregates can be used for an aggregate column by setting the
type
property with an array of aggregate types.- Multiple types for a column is supported only when one of the aggregate templates is used.
Child aggregate
Aggregate value is calculated for child rows, and it is displayed in the parent row footer. Use the childSummary
property to render the child rows aggregate value.
import { Component, OnInit } from '@angular/core';
import { summaryRowData } from './datasource';
@Component({
selector: 'app-container',
template: `<ejs-treegrid [dataSource]='data' height='240' [treeColumnIndex]='0' childMapping='children' >
<e-columns>
<e-column field='FreightID' headerText='Freight ID' width=130></e-column>
<e-column field='FreightName' headerText='Freight Name' width=195></e-column>
<e-column field='UnitWeight' headerText='Weight Per Unit' textAlign='Right' type='number' width=130></e-column>
<e-column field='TotalUnits' headerText='Total Units' textAlign='Right' type='number' width=125></e-column>
</e-columns>
<e-aggregates>
<e-aggregate [showChildSummary]='true'>
<e-columns>
<e-column field="UnitWeight" type="Max">
<ng-template #footerTemplate let-data>Maximum: </ng-template>
</e-column>
<e-column field="TotalUnits" type="Min">
<ng-template #footerTemplate let-data>Minimum: </ng-template>
</e-column>
</e-columns>
</e-aggregate>
</e-aggregates>
</ejs-treegrid>`
})
export class AppComponent implements OnInit {
public data: Object[];
ngOnInit(): void {
this.data = summaryRowData;
}
}
import { NgModule,ViewChild } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { TreeGridModule } from '@syncfusion/ej2-angular-treegrid';
import { AggregateService } from '@syncfusion/ej2-angular-treegrid';
import { AppComponent } from './app.component';
/**
* Module
*/
@NgModule({
imports: [
BrowserModule,
TreeGridModule
],
declarations: [AppComponent],
bootstrap: [AppComponent],
providers: [AggregateService ]
})
export class AppModule { }
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { enableProdMode } from '@angular/core';
import { AppModule } from './app.module';
enableProdMode();
platformBrowserDynamic().bootstrapModule(AppModule);
You can refer to our
Angular Tree Grid
feature tour page for its groundbreaking feature representations. You can also explore ourAngular Tree Grid example
to knows how to present and manipulate data.