为什么 vaadin-grid 不显示链接(锚点)?
Why is vaadin-grid not showing links (anchors)?
我正在尝试在我的 Vaadin 10 Spring-boot 应用程序中创建一个包含链接的 table 列。
我在网格中显示数据如下:
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
这样的文本
问题是,列数据被解释为值而不是组件。你需要告诉网格,它应该使用一个渲染器,它显示组件而不是包装它们。
这可以使用 ComponentRenderer 来完成。
如果您按如下方式修改您的列,它会起作用:
grid.addColumn(new ComponentRenderer<>(p -> new Anchor(UI.getCurrent().getRouter().getUrl(
PersonView.class, p.getName()), p.getName()))).setHeader("Name");
我正在尝试在我的 Vaadin 10 Spring-boot 应用程序中创建一个包含链接的 table 列。
我在网格中显示数据如下:
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
问题是,列数据被解释为值而不是组件。你需要告诉网格,它应该使用一个渲染器,它显示组件而不是包装它们。
这可以使用 ComponentRenderer 来完成。
如果您按如下方式修改您的列,它会起作用:
grid.addColumn(new ComponentRenderer<>(p -> new Anchor(UI.getCurrent().getRouter().getUrl(
PersonView.class, p.getName()), p.getName()))).setHeader("Name");