Skip to content

Commit 48967e2

Browse files
authored
Merge pull request #6829 from IgniteUI/mkirova/fix-6731-9.0.x
fix(igxGrid): Reset autogenerated columns in case Ivy triggers a Cont…
2 parents 7476a61 + 08dcc1a commit 48967e2

File tree

3 files changed

+10
-3
lines changed

3 files changed

+10
-3
lines changed

projects/igniteui-angular/src/lib/grids/grid-base.directive.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2430,6 +2430,7 @@ export class IgxGridBaseDirective extends DisplayDensityBase implements
24302430
private _unpinnedWidth = NaN;
24312431
private _visibleColumns = [];
24322432
private _columnGroups = false;
2433+
private _autoGeneratedCols = [];
24332434
protected _headerFeaturesWidth = NaN;
24342435

24352436
private _columnWidth: string;
@@ -4497,6 +4498,12 @@ export class IgxGridBaseDirective extends DisplayDensityBase implements
44974498
*/
44984499
protected onColumnsChanged(change: QueryList<IgxColumnComponent>) {
44994500
const diff = this.columnListDiffer.diff(change);
4501+
if (this.autoGenerate && this.columnList.length === 0 && this._autoGeneratedCols.length > 0) {
4502+
// In Ivy if there are nested conditional templates the content children are re-evaluated
4503+
// hence autogenerated columns are cleared and need to be reset.
4504+
this.columnList.reset(this._autoGeneratedCols);
4505+
return;
4506+
}
45004507
if (diff) {
45014508
let added = false;
45024509
let removed = false;
@@ -4720,6 +4727,7 @@ export class IgxGridBaseDirective extends DisplayDensityBase implements
47204727
ref.changeDetectorRef.detectChanges();
47214728
columns.push(ref.instance);
47224729
});
4730+
this._autoGeneratedCols = columns;
47234731

47244732
this.columnList.reset(columns);
47254733
if (data && data.length > 0) {

projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -417,7 +417,7 @@ export class IgxHierarchicalGridComponent extends IgxHierarchicalGridBaseDirecti
417417
protected onColumnsChanged(change: QueryList<IgxColumnComponent>) {
418418
this.updateColumnList();
419419
const cols = change.filter(c => c.gridAPI.grid === this);
420-
if (cols.length > 0) {
420+
if (cols.length > 0 || this.autoGenerate) {
421421
this.columnList.reset(cols);
422422
super.onColumnsChanged(this.columnList);
423423
}

projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid.spec.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1080,8 +1080,7 @@ describe('IgxHierarchicalGrid Runtime Row Island change Scenarios #hGrid', () =>
10801080
hierarchicalGrid = fixture.componentInstance.hgrid;
10811081
}));
10821082

1083-
xit('should allow changing row islands runtime in root grid.', () => {
1084-
pending('Related to issue #6731');
1083+
it('should allow changing row islands runtime in root grid.', () => {
10851084
const row = hierarchicalGrid.getRowByIndex(0) as IgxHierarchicalRowComponent;
10861085
UIInteractions.clickElement(row.expander);
10871086
fixture.detectChanges();

0 commit comments

Comments
 (0)