ag-grid Refresh Column Filter после начальной загрузки - PullRequest
1 голос
/ 25 марта 2019

В соответствии с 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 для возврата строк, как описано в сообщении об ошибке? Есть ли лучший способ решить эту проблему, у кого есть опыт?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...