Почему vaadin-grid не показывает ссылки (якоря)? - PullRequest
0 голосов
/ 04 сентября 2018

Я пытаюсь создать столбец таблицы со ссылками в приложении Vaadin 10, Spring-boot.

Я отображаю данные в сетке следующим образом:

Grid<Person> grid = new Grid<>();
UI.getCurrent().getRouter();

grid.addColumn(
   p -> new Anchor(UI.getCurrent().getRouter().getUrl(
                    PersonView.class, p.getName()),
                   p.getName())).setHeader("Name");
grid.addColumn(p ->   
   p.getProjects().size()).setHeader("#Projects");

grid.setItems(repo.findAll());
add(grid);
setSizeFull();

Но в столбце сетки со ссылками отображается только текст, подобный Anchor@XXXXXXX

1 Ответ

0 голосов
/ 04 сентября 2018

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

Это можно сделать с помощью ComponentRenderer .

Если вы измените свой столбец следующим образом, он будет работать:

grid.addColumn(new ComponentRenderer<>(p -> new Anchor(UI.getCurrent().getRouter().getUrl(
            PersonView.class, p.getName()), p.getName()))).setHeader("Name");
...