Как отобразить многострочные данные в ячейке столбца Vaadin Grid

введите здесь описание изображенияКак отобразить многострочные данные в ячейке Vaadin Grid.

Пробовал с \n со строкой, но все еще отображается в одной строке.


person Stark    schedule 29.10.2020    source источник


Ответы (2)


При добавлении столбца вместо использования 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).

person kscherrer    schedule 30.10.2020

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

вы также можете использовать это решение. оба работают нормально.

person Stark    schedule 09.11.2020