После прокрутки до конца списка в UI-Grid и щелчка по сортируемому столбцу, нумерация страниц a.k.a. бесконечная прокрутка не работает, и таблица фиксируется только с набором строк. При дальнейшей прокрутке пагинация в UI-сетке не происходит. Похоже, бесконечная прокрутка отключается при достижении последней строки.
Я попытался сбросить сетку, и она не поддерживает проблему.
this.gridOptions.onRegisterApi = (gridApi) => {
gridApi.infiniteScroll.on.needLoadMoreData(this.$scope, () => {
if (this.Events.page < this.Events.totalPages) {
this.Events.page++;
this.gridApi.infiniteScroll.saveScrollPercentage();
return this.gridApi.infiniteScroll.dataLoaded(false, true);
}
});
this.gridApi = gridApi;
this.getColumnSettings();
this.gridApi.core.on.sortChanged(this.$scope, (grid, sortColumns) => {
this.sortChanged(grid, sortColumns);
});
};
Я вызываю эту функцию при изменении сортировки. т.е. если щелкнуть заголовок столбца,
public sortChanged(grid, sortColumns) {
this.isSortEnabled = true;
this.sortState.fieldName = "";
this.Events = new EventsPage();
this.gridSpinner = true;
this.gridOptions.data = [];
this.gridApi.infiniteScroll.dataLoaded();
this.gridApi.infiniteScroll.resetScroll(false, false);
if (sortColumns.length > 0) {
this.setFieldName(sortColumns[0].field);
if (sortColumns[0].sort.direction === "desc") {
this.sortState.fieldName = "-" + this.sortState.fieldName;
}
}
else {
this.sortState.fieldName = "someSortParameter";
}
this.getEvents();
}
Должно произойти разбиение на страницы, и gridApi.infiniteScroll.on.needLoadMoreData () должен быть вызван после достижения конца списка и затем щелкнуть сортировку в заголовке столбца.