Skip to content

Commit f6ab6b8

Browse files
authored
fix(IgxGrid): Add summary rows to special record types to skip for merge. (#16369)
1 parent ef9daf3 commit f6ab6b8

File tree

3 files changed

+25
-4
lines changed

3 files changed

+25
-4
lines changed

projects/igniteui-angular/core/src/data-operations/merge-strategy.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ export class DefaultMergeStrategy implements IGridMergeStrategy {
6464

6565
const recData = result[index];
6666
// if this is active row or some special record type - add and skip merging
67-
if (activeRowIndexes.indexOf(index) != -1 || (grid && grid.isDetailRecord(rec) || grid.isGroupByRecord(rec) || grid.isChildGridRecord(rec))) {
67+
if (activeRowIndexes.indexOf(index) != -1 || (grid && grid.isDetailRecord(rec) || grid.isGroupByRecord(rec) || grid.isChildGridRecord(rec) || grid.isSummaryRow(rec))) {
6868
if (!recData) {
6969
result.push(rec);
7070
}

projects/igniteui-angular/grids/grid/src/cell-merge.spec.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,27 @@ describe('IgxGrid - Cell merging #grid', () => {
308308

309309
});
310310

311+
describe('Summaries', () => {
312+
it('should merge correctly when summary row is shown.', () => {
313+
grid.groupBy({
314+
fieldName: 'ProductName', dir: SortingDirection.Desc,
315+
ignoreCase: false, strategy: DefaultSortingStrategy.instance()
316+
});
317+
fix.detectChanges();
318+
319+
const col = grid.getColumnByName('ProductName');
320+
col.hasSummary = true;
321+
fix.detectChanges();
322+
323+
GridFunctions.verifyColumnMergedState(grid, col, [
324+
{ value: 'NetAdvantage', span: 2 },
325+
{ value: 'Ignite UI for JavaScript', span: 3 },
326+
{ value: 'Ignite UI for Angular', span: 3 },
327+
{ value: null, span: 1 }
328+
]);
329+
});
330+
});
331+
311332
describe('Master-Detail', () => {
312333

313334
it('should interrupt merge sequence if a master-detail row is expanded.', () => {

src/app/grid-cellMerging/grid-cellMerging.component.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ <h4 class="sample-title">Grid with cell merge</h4>
5050
Value: {{val}},Index: {{cell.row.index}}
5151
</ng-template>
5252
</igx-column>
53-
<igx-column field="ShipCountry" header="Ship Country" [merge]="true" width="200px" sortable="true">
53+
<igx-column field="ShipCountry" [groupable]="true" [hasSummary]="true" header="Ship Country" [merge]="true" width="200px" sortable="true">
5454
</igx-column>
5555
<igx-column field="OrderDate" header="Order Date" width="200px" [merge]="true" [groupable]="true" [dataType]="'date'" sortable="true">
5656
</igx-column>
@@ -95,7 +95,7 @@ <h4 class="sample-title">Hierarchical grid with cell merge</h4>
9595
</igx-column>
9696
<igx-column field="Title" width="200px" [merge]="true" [hasSummary]="true">
9797
</igx-column>
98-
<igx-column field="City" width="200px" [merge]="true" editable="true" sortable="true">
98+
<igx-column [groupable]="true" [hasSummary]="true" field="City" width="200px" [merge]="true" editable="true" sortable="true">
9999
</igx-column>
100100
<igx-row-island [key]="'Orders'" [cellMergeMode]="'always'">
101101
<igx-column field="CustomerID" width="200px">
@@ -113,7 +113,7 @@ <h4 class="sample-title">Tree grid with cell merge</h4>
113113
<button (click)="toggleStrategy()">Toggle strategy</button>
114114
<igx-tree-grid [autoGenerate]="false" [rowSelection]="'single'" [data]="treeData" [cellMergeMode]="'always'" [mergeStrategy]="treeGridMergeStrategy"
115115
childDataKey="ChildCompanies" primaryKey="ID" [expansionDepth]="1" width="800px" [height]="'550px'">
116-
<igx-column field="ContactName" width="200px">
116+
<igx-column field="ContactName" width="200px" [hasSummary]="true">
117117
</igx-column>
118118
<igx-column field="ContactTitle" width="200px"></igx-column>
119119
<igx-column field="Country" width="200px" [merge]="true" sortable="true"></igx-column>

0 commit comments

Comments
 (0)