Возможны ли фильтры столбцов клиента и сервера в ag grid?

#ag-grid #ag-grid-react

#ag-grid #ag-grid-реагировать

Вопрос:

Я хочу знать, можем ли мы выполнить комбинированную фильтрацию в ag grid. Некоторая фильтрация столбцов на клиенте и некоторая на сервере. возможно ли это?

Я проверял веб-сайт adaptabletools, на котором они создали аналогичную функцию с serverOptions.ссылка ниже. Я пытался добиться аналогичного с помощью ag-grid api. Не могли бы вы посоветовать

https://api.adaptabletools.com/interfaces/_src_adaptableoptions_searchoptions_.searchoptions.html

Ответ №1:

Обновите этот вопрос, поскольку я разработал адаптируемый, на который ссылается OP в ее вопросе. Мы включаем и облегчаем поиск, сортировку и фильтрацию на стороне сервера, сохраняя ag-Grid в режиме ClientSideRowModel, и многие пользователи получают от этого огромное преимущество.

Вы можете узнать больше на:

https://docs.adaptabletools.com/docs/key-topics/server-functionality

Однако обратите внимание, что это подходит для случая использования, когда у вас есть несколько сотен тысяч строк, и вы хотите получить лучшее из обоих миров; если у вас есть миллионы строк данных, которые нуждаются в поиске и фильтрации, тогда вам следует использовать серверные модели ag-Grid или бесконечные модели строк (обе из которых полностью поддерживаются AdapTable, но разными способами, упомянутыми в OP).

Ответ №2:

По умолчанию используется RowModel на стороне клиента. Сетка загрузит все данные в сетку за один раз. Затем сетка может выполнять фильтрацию, сортировку, группировку, поворот и агрегацию всего в памяти.

Модель строк на стороне сервера основана на модели бесконечных строк. В дополнение к отложенной загрузке данных при прокрутке пользователем вниз, это также позволяет выполнять отложенную загрузку сгруппированных данных с помощью группировки и агрегирования на стороне сервера. Опытные пользователи будут использовать модель строк на стороне сервера для выполнения специальных фрагментов данных с агрегированием на стороне сервера.

В идеале разработчик должен выбрать любой из них. Также AG Grid не позволяет ни одному методу устанавливать RowmodelType тип программно.

Итак, простой ответ — нет, это не может быть сделано легко.

Но я думаю, вы можете сделать некоторое обходное решение, создав другую скрытую AG Grid, которая будет создана с помощью RowmodelType = 'client side' . обновляйте данные в этой 2-й сетке всякий раз, когда данные изменяются в первой сетке. также переключайтесь между сеткой (используя логику скрытого отображения), когда пользователь хочет фильтровать на стороне клиента (возможно, вы можете указать переключатель для этого), И вы можете установить filterstate / columnstate и т. Д. Настройки со 2-й по 1-ю сетку.