I am using ngx-datatable to render data table with grouping of rows.
Here is the HTML code
<ngx-datatable [rows]="data" [loadingIndicator]="loadingIndicator" [groupExpansionDefault]="false"
[groupRowsBy]="'Name'">
<!-- Header Template -->
<ngx-datatable-group-header [rowHeight]="60">
<ng-template let-group="group" let-expanded="expanded" ngx-datatable-group-header-template>
<div class="table-group-header group-header">
<span style="cursor: pointer" [class.datatable-icon-right]="!expanded"
[class.datatable-icon-down]="expanded" (click)="expandGroup(group)">
{{group.key}}
</span>
</div>
</ng-template>
</ngx-datatable-group-header>
<ngx-datatable-column name="Name" [width]="200">
<ng-template let-row="row" ngx-datatable-cell-template>
{{row.name}}
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column name="Cost" [width]="100">
<ng-template let-row="row" ngx-datatable-cell-template>
{{row.cost}}
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column name="Number" [width]="50">
<ng-template let-row="row" ngx-datatable-cell-template>
{{row.number}}
</ng-template>
</ngx-datatable-column>
</ngx-datatable>
Here is how it looks
The examples I have seen provide one template that will be rendered in header row. What I want is total of each column in the header row (marked red boxes in image). How can I provide multiple columns in group header row as well ?
I tried providing all the values under same single template with proper width, but the problem is that width is fixed for div in the template and as columns size can be changed in ngx-datatable so header row template layout will not fit (as I provided fixed width).
Here is how I have done this
<ngx-datatable-group-header [rowHeight]="60">
<ng-template let-group="group" let-expanded="expanded" ngx-datatable-group-header-template>
<div class="table-group-header group-header">
<span style="cursor: pointer" [class.datatable-icon-right]="!expanded"
[class.datatable-icon-down]="expanded" (click)="expandGroup(group)">
<span style="width: 300px;">
{{group.key}}
</span>
<span style="width: 100px;">
{{sumProperty(group.value, 'cost') | number: 0}}
</span>
<span style="width: 50px;">
{{sumProperty(group.value, 'number')}}
</span>
</span>
</div>
</ng-template>
</ngx-datatable-group-header>