我正在尝试在我的Vaadin10,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之类的文本
发布于 2018-09-04 15:44:39
问题是,列数据被解释为值,而不是组件。您需要告诉网格,它应该使用渲染器,该渲染器显示组件,而不包装组件。
这可以使用ComponentRenderer来完成。
如果您按如下方式修改列,它将正常工作:
grid.addColumn(new ComponentRenderer<>(p -> new Anchor(UI.getCurrent().getRouter().getUrl(
PersonView.class, p.getName()), p.getName()))).setHeader("Name");https://stackoverflow.com/questions/52161261
复制相似问题