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

问题描述

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);
});

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...