У меня сейчас особая проблема - у меня есть сетка, в которой я пытаюсь фильтровать данные через несколько фильтров. Для этого я использую текстовые поля, которые служат полями ввода для моего критерия фильтрации.
Моя сетка состоит из трех столбцов (Имя, Фамилия, Адрес), и я хотел бы иметь возможность объединить операции фильтрации один за другим. Все значения взяты из базы данных MySQL.
По существу процесс фильтрации должен go выглядеть следующим образом:
FirstName ^ LastName ^ Address
Например, сетка с тремя столбцами:
И в фильтре для столбца Имя введите переменные Aa
, в результате таблица выглядит следующим образом:
Однако, если я решив ввести D
в фильтр «Фамилия», он возвращает следующие результаты (игнорирует изменения, внесенные первым фильтром):
Вместо ожидаемого результата, который выглядел бы так:
Способ фильтрации по сетке выглядит следующим образом:
firstNameFilter.addValueChangeListener( e->
{
Notification.show(e.getValue());
ldp.setFilter(desc ->
{
return StringUtils.containsIgnoreCase(desc.getFName(), firstNameFilter.getValue());
});
});
firstNameFilter.setValueChangeMode(ValueChangeMode.EAGER);
Каков наилучший способ фильтрации по нескольким столбцам с учетом предыдущих действий фильтра?