问题描述
enter image description here如何在Vaadin Grid单元格中显示多行数据。
使用\ n和字符串进行了尝试,但仍显示在一行中。
解决方法
添加列时,您可以使用ValueProvider
并返回一个简单的组件,您可以自己控制换行,而无需使用返回字符串的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);
});
您也可以使用此解决方案。两者都很好。