Skip to content

Commit bf899d5

Browse files
authored
Merge pull request #6828 from IgniteUI/mkirova/fix-6731
fix(igxGrid): Reset autogenerated columns in case Ivy triggers a Cont…
2 parents 8876925 + b90f785 commit bf899d5

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

+8
Original file line numberDiff line numberDiff line change
@@ -2468,6 +2468,7 @@ export class IgxGridBaseDirective extends DisplayDensityBase implements
24682468
private _unpinnedWidth = NaN;
24692469
private _visibleColumns = [];
24702470
private _columnGroups = false;
2471+
private _autoGeneratedCols = [];
24712472
protected _headerFeaturesWidth = NaN;
24722473

24732474
private _columnWidth: string;
@@ -4549,6 +4550,12 @@ export class IgxGridBaseDirective extends DisplayDensityBase implements
45494550
*/
45504551
protected onColumnsChanged(change: QueryList<IgxColumnComponent>) {
45514552
const diff = this.columnListDiffer.diff(change);
4553+
if (this.autoGenerate && this.columnList.length === 0 && this._autoGeneratedCols.length > 0) {
4554+
// In Ivy if there are nested conditional templates the content children are re-evaluated
4555+
// hence autogenerated columns are cleared and need to be reset.
4556+
this.columnList.reset(this._autoGeneratedCols);
4557+
return;
4558+
}
45524559
if (diff) {
45534560
let added = false;
45544561
let removed = false;
@@ -4778,6 +4785,7 @@ export class IgxGridBaseDirective extends DisplayDensityBase implements
47784785
ref.changeDetectorRef.detectChanges();
47794786
columns.push(ref.instance);
47804787
});
4788+
this._autoGeneratedCols = columns;
47814789

47824790
this.columnList.reset(columns);
47834791
if (data && data.length > 0) {

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

+1-1
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

+1-2
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)