Skip to content

Commit 4e147a6

Browse files
authored
GridCore dataController: reset guard flags when the guarded action throws (#34705)
1 parent aa5f885 commit 4e147a6

1 file changed

Lines changed: 14 additions & 8 deletions

File tree

packages/devextreme/js/__internal/grids/grid_core/data_controller/data_controller.ts

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -438,8 +438,11 @@ export class DataController extends DataHelperMixin(modules.Controller) {
438438
columnsController.updateColumnDataTypes(dataSource);
439439
}
440440
this._columnsUpdating = true;
441-
columnsController.updateSortingGrouping(dataSource, !this._useSortingGroupingFromColumns);
442-
this._columnsUpdating = false;
441+
try {
442+
columnsController.updateSortingGrouping(dataSource, !this._useSortingGroupingFromColumns);
443+
} finally {
444+
this._columnsUpdating = false;
445+
}
443446

444447
storeLoadOptions.sort = columnsController.getSortDataSourceParameters();
445448
storeLoadOptions.group = columnsController.getGroupDataSourceParameters();
@@ -1589,13 +1592,16 @@ export class DataController extends DataHelperMixin(modules.Controller) {
15891592
}
15901593

15911594
this._skipProcessingPagingChange = true;
1592-
if (optionName === 'pageSize' && value === 0) {
1593-
dataSource.pageIndex(0);
1594-
this.option('paging.pageIndex', 0);
1595+
try {
1596+
if (optionName === 'pageSize' && value === 0) {
1597+
dataSource.pageIndex(0);
1598+
this.option('paging.pageIndex', 0);
1599+
}
1600+
dataSource[optionName](value);
1601+
this.option(`paging.${optionName}`, value);
1602+
} finally {
1603+
this._skipProcessingPagingChange = false;
15951604
}
1596-
dataSource[optionName](value);
1597-
this.option(`paging.${optionName}`, value);
1598-
this._skipProcessingPagingChange = false;
15991605

16001606
const pageIndex = dataSource.pageIndex();
16011607
this._isPaging = optionName === 'pageIndex';

0 commit comments

Comments
 (0)