В соответствии с https://www.ag -grid.com / javascript-grid-filter-set / , «Сетка не обновляет фильтры для вас, так как вариантов использования слишком много ...», # согласовано .
Я использую источник данных на стороне сервера с Infinite Paging, запрашивающий большой набор данных. Хотя при начальной загрузке я могу быть уверен, что фильтр перечисляет все доступные «варианты», я надеюсь найти решение для «перезагрузки» фильтра на некоторой частоте / событии, чтобы быть уверенным.
Я пытаюсь использовать метод resetFilterValues()
объекта, возвращаемого вызовом gridOptions.api.getFilterInstance(id)
.
При использовании источника данных на стороне сервера я получаю следующий вывод console.error:
ag-Grid: Set Filter cannot initialise because you are using a row model that does not contain all rows in the browser. Either use a different filter type, or configure Set Filter such that you provide it with values (Source ag-grid-enterprise.min.js:555
Примечание: метод значений с асинхронной загрузкой значений работает великолепно и написан в соответствии с рекомендацией, например, обратный вызов params.success со значениями.
Я загружаю выбор фильтров в заголовок столбца, используя следующий подход:
{
headerName: 'Something',
field: 'SOMETHING',
width: 200,
suppressMenu: false,
suppressFilter: false,
filter: 'agSetColumnFilter',
filterParams: {
values: function (params) {
someAsyncMethodReturningAPIResultsAsArray();
}
newRowsAction: 'keep'
},
menuTabs: ['filterMenuTab']
}
Затем я пытаюсь перезагрузить фильтры позднее (например, когда кнопка нажата вне сетки), используя следующий код:
var filter = gridOptions.api.getFilterInstance(id);
filter.resetFilterValues();
Этот код приводит к ошибке, указанной выше.
В: Кто-нибудь знает, как настроить Set Model для возврата строк, как описано в сообщении об ошибке? Есть ли лучший способ решить эту проблему, у кого есть опыт?
Спасибо