Столбец компонента сетки Vaadin 14, содержащий флажок, не сортируется

Я использую сетку Vaadin 14. Эта сетка содержит несколько столбцов. Некоторые из них должны представлять логические значения, поэтому мы используем компонент флажка внутри этого столбца. Это делается с помощью метода grid.addComponentColumn. Столбцы, связанные с текстом, только что добавлены с помощью grid.addColumn

Теперь мы хотим включить мультисортировку в сетке. По умолчанию индикаторы сортировки (стрелка вверх / вниз) в заголовке отображаются для текстовых столбцов, но не для логических значений.

После добавления сортировки к логическому столбцу / столбцу компонента (addComponentColumn(...).setSortable(true) индикаторы сортировки в заголовках отображаются, но сама сортировка не выполняется при изменении направления сортировки (none / asc / desc) с помощью стрелок в заголовке.

Как я могу заставить это работать? Заранее спасибо!


person Herbert    schedule 30.09.2020    source источник


Ответы (1)


Если у вас есть собственная логика для того, что отображается в столбце, вам также необходимо явно настроить, как должна обрабатываться сортировка для этого столбца.

Если вы используете данные в памяти, вы делаете это с помощью Column.setComparator. Если вы используете внутренний источник данных, вам следует вместо этого использовать Column.setSortProperty, а также убедиться, что поставщик данных действительно учитывает содержимое Query.getSortOrders.

Вы можете увидеть пример этого на практике по адресу https://cookbook.vaadin.com/sort-with-renderer.

person Leif Åstrand    schedule 30.09.2020
comment
Привет, Лейф, спасибо за ответ. После чашки кофе и дополнительных поисков я также нашел метод setComparator. На vaadin.com/docs/v14/flow / components / это тоже объясняется. Теперь у меня это работает. - person Herbert; 30.09.2020