0

在此处输入图像描述如何在 Vaadin 网格单元格中显示多行数据。

尝试使用带有字符串的 \n ,但仍显示在一行中。

4

2 回答 2

1

添加列时ValueProvider,您可以使用 a 并返回一个简单的组件,而不是使用返回字符串的 a ,您可以ComponentRenderer在其中自己控制换行符

// linebreaks wont work like this
grid.addColumn(item -> "line1 \n line2");

// try this instead.
// or probable even better you could use the `Html` component from Vaadin
grid.addColumn(new ComponentRenderer<>(item -> {
    Span span1 = new Span("line1");
    Span span2 = new Span("line2");
    return new VerticalLayout(span1, span2);
}));

您还可以使用 TemplateRenderer,它比 ComponentRenderer 使用更少的内存,但学习曲线 (IMO) 稍微陡峭一些。

于 2020-10-30T07:49:14.060 回答
0
grid.addComponentColumn(item -> {
    Span span1 = new Span("line1");
    Span span2 = new Span("line2");
    return new Div(span1, span2);
});

您也可以使用此解决方案。两者都工作正常。

于 2020-11-09T19:51:27.207 回答