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 に答える