如何在列的 Vaadin 网格单元格上显示多行数据

How to show multiline data on Vaadin Grid cell of a column

enter image description here如何在 Vaadin 网格单元格中显示多行数据。

尝试使用 \n 和字符串,但仍然显示在一行中。

添加列时,您可以使用 ComponentRenderer 和 return 一个可以控制的简单组件,而不是使用 return 字符串的 ValueProvider换行自己

// 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) 稍微陡一些。

grid.addComponentColumn(item -> {
    Span span1 = new Span("line1");
    Span span2 = new Span("line2");
    return new Div(span1, span2);
});

您也可以使用此解决方案。两者都很好。