如何在列的 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);
});
您也可以使用此解决方案。两者都很好。
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);
});
您也可以使用此解决方案。两者都很好。