0

我想在我的 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

4

1 回答 1

0

问题是,列数据被解释为值而不是组件。您需要告诉网格,它应该使用渲染器,它显示组件并且不包装它们。

这可以使用ComponentRenderer来完成。

如果您按如下方式修改列,它将起作用:

grid.addColumn(new ComponentRenderer<>(p -> new Anchor(UI.getCurrent().getRouter().getUrl(
            PersonView.class, p.getName()), p.getName()))).setHeader("Name");
于 2018-09-04T07:44:38.693 回答