Skip to content

Commit 18381cf

Browse files
authored
Merge pull request #5050 from IgniteUI/vslavov/row-editing-warning-master
RowEdit + PrimaryKey warning fix - master
2 parents 2d01329 + 94ac19e commit 18381cf

File tree

3 files changed

+10
-11
lines changed

3 files changed

+10
-11
lines changed

projects/igniteui-angular/src/lib/core/grid-selection.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,9 @@ export class IgxGridCRUDService {
126126
}
127127

128128
beginRowEdit() {
129+
if (this.grid.rowEditable && (this.grid.primaryKey === undefined || this.grid.primaryKey === null)) {
130+
console.warn('The grid must have a `primaryKey` specified when using `rowEditable`!');
131+
}
129132
this.row = this.createRow(this.cell);
130133
const args = {
131134
rowID: this.row.id,

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -596,9 +596,6 @@ export abstract class IgxGridBaseComponent extends DisplayDensityBase implements
596596
* @memberof IgxGridBaseComponent
597597
*/
598598
set rowEditable(val: boolean) {
599-
if (val && (this.primaryKey === undefined || this.primaryKey === null)) {
600-
console.warn('The grid must have a `primaryKey` specified when using `rowEditable`!');
601-
}
602599
this._rowEditable = val;
603600
if (this.gridAPI.grid) {
604601
this.refreshGridState();

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

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1391,22 +1391,21 @@ describe('IgxGrid Component Tests', () => {
13911391
grid.rowEditable = true;
13921392
fix.detectChanges();
13931393
tick(16);
1394-
expect(console.warn).toHaveBeenCalledWith('The grid must have a `primaryKey` specified when using `rowEditable`!');
1395-
expect(console.warn).toHaveBeenCalledTimes(1);
13961394
// Throws warinig but still sets the property correctly
13971395
expect(grid.rowEditable).toBeTruthy();
13981396

1397+
const cell = grid.getRowByIndex(2).cells.toArray()[1].nativeElement;
1398+
spyOn(grid, 'openRowOverlay');
1399+
cell.dispatchEvent(new Event('focus'));
13991400
tick(16);
14001401
fix.detectChanges();
1401-
grid.primaryKey = 'ProductID';
1402-
grid.rowEditable = false;
1403-
fix.detectChanges();
1402+
cell.dispatchEvent(new Event('dblclick'));
14041403
tick(16);
1405-
grid.rowEditable = true;
14061404
fix.detectChanges();
1407-
tick(16);
1405+
expect(console.warn).toHaveBeenCalledWith('The grid must have a `primaryKey` specified when using `rowEditable`!');
14081406
expect(console.warn).toHaveBeenCalledTimes(1);
1409-
expect(grid.rowEditable).toBeTruthy();
1407+
// Still calls openRowOverlay, just logs the warning
1408+
expect(grid.openRowOverlay).toHaveBeenCalled();
14101409
}));
14111410
it('Should be able to enter edit mode on dblclick, enter and f2', fakeAsync(() => {
14121411
const fix = TestBed.createComponent(IgxGridRowEditingComponent);

0 commit comments

Comments
 (0)