Свойство колонок captionAsHtml в DataGrid

В DataGrid, в свойствах у “сolumn” отсутствует атрибут “captionAsHtml”. При этом для компоненты Table, у “сolumn” он присутствует.
Мне требуется в DataGrid сделать переносы строк в заголовках столбцов. Подскажите, пожалуйста, как это можно сделать?

Так если в пакете сообщений сделать перенос на другую строку.

caption = Str1/
Str2

Так не работает?

Нет, так не работает. Пробовал вариант с “\” и “\n”.

Для Table работает вариант:
caption = Str1 <br> Str2
Но для этого у сolumn должно быть выставлено свойство captionAsHtml=true

Добрый день!

Можно программно установить html вариант заголовка:

@Autowired
private DataGrid<Order> ordersTable;
@Autowired
private HtmlSanitizer htmlSanitizer;

@Subscribe
public void onInit(InitEvent event) {
    DataGrid.HeaderRow headerRow = ordersTable.getDefaultHeaderRow();
    if (headerRow != null) {
        headerRow.getCell("number").setHtml(htmlSanitizer.sanitize("Line 1<br>Line 2"));
    }
}

Возможно придётся ещё стили подправить, чтобы корректно caption корректно отображался.

1 симпатия

Спасибо, сработало! Стили, действительно, пришлось немного подправить (высоту строки заголовка)

Правда есть ещё один момент с DataGrid: у его колонок нельзя указать align, как у колонок в Table.
Можно и это как-то обойти?

Написать свой селектор:

.datagrid-header-center .v-grid-column-default-header-content {
  text-align: center;
}
<dataGrid id="dataGrid"
          stylename="datagrid-header-center"

Или без datagrid-header-center, чтобы применить ко всем DataGrid в приложении.