在此处输入图像描述如何在 Vaadin 网格单元格中显示多行数据。
尝试使用带有字符串的 \n ,但仍显示在一行中。
添加列时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) 稍微陡峭一些。
grid.addComponentColumn(item -> {
Span span1 = new Span("line1");
Span span2 = new Span("line2");
return new Div(span1, span2);
});
您也可以使用此解决方案。两者都工作正常。