В настоящее время я реализую ag-grid с rowModelType: 'infinite', и данные загружаются, когда пользователь прокручивает список вниз.Пользователь должен будет фильтровать 1 миллион записей за раз, и у нас есть внешние фильтры, которые сохраняются для каждого пользователя.
Эти внешние фильтры отправляются на сервер, чтобы получить только те записи, которые пользователь должен видеть.когда пользователь выбирает эти фильтры, мне нужно перезагрузить сетку с новыми данными, сбросив счетчик страниц и вернувшись к получению отфильтрованных записей, в настоящее время я передаю фильтры в HTTP-запросе.
Мой текущий код выглядиткак показано ниже.
var datasource = {
rowCount: null,
getRows: function (params) {
console.log("asking for " + params.startRow + " to " + params.endRow);
that.service.loadDataViaSubscription(that.getActiveFilter())
.map((response: Response) => {
console.log("Mapping the data from api.");
return <any>response.json();
})
.subscribe(
data => {
setTimeout(function () {
var rowsThisPage = data[0];
that.currentRecordCount = params.endRow;
if (params.startRow === 0) {
that.currentRecordCount = rowsThisPage.length < 100 ? 100 : rowsThisPage.length;
}
else {
that.currentRecordCount = params.startRow + rowsThisPage.length;
}
params.successCallback(rowsThisPage, that.currentRecordCount);
that.agGridOptions.api.hideOverlay();
}, 500);
});
}
};
Как я могу сказать ag-grid сбросить сетку и удалить текущие данные и снова начать загрузку данных?так что новые данные с фильтрами могут быть загружены в сетку.