Сетка Vaadin, дополнительный заголовок делает другие заголовки невидимыми

#java #vaadin #vaadin-grid

#java #vaadin #vaadin-grid

Вопрос:

Ситуация: Предположим, у вас простая сетка, всего с 2 столбцами. Первый столбец заморожен. Вы пытаетесь объединить 2-й столбец с дополнительным заголовком.

Проблема: после присоединения к столбцу подписи столбцов (в ячейках заголовка) всех столбцов исчезают.

Код для воспроизведения:

 Grid table = new Grid();
HeaderRow header = table.addHeaderRowAt(0);

Column c1 = table.addColumn("C1", String.class);
table.setFrozenColumnCount(1);
Column d1 = table.addColumn("D1", Short.class);

c1.setHeaderCaption("Frozen col");
d1.setHeaderCaption("1/10");

header.join("D1");
table.addRow("Example name", (short)25);
  

Без объединения:

Без объединения

С помощью join:

С помощью join

Я делаю что-то не так или это ошибка Vaadin?

Версия Vaadin: 7.7.0

С уважением

Ответ №1:

Вам нужно объединить оба столбца:

 header.join("C1", "D1");
  

Из .join(Object... propertyIds) функции:

 assert propertyIds.length > 1 : "You need to merge at least 2 properties";
  

Ответ №2:

У меня была такая же проблема (Vaadin 8.5.0). Вам не нужно вызывать header.join(...) , когда есть только один столбец. Вместо этого получите свою ячейку заголовка, вызвав HeaderCell headerCell = headerRow.getCell("D1") . Вы все еще можете установить компонент или текст headerCell .