Как в Vaadin 7 поместить заголовок в заголовок сетки? Прямо сейчас столбец намного шире, чем он должен быть основан на ожидаемых данных, поэтому пользователи хотят, чтобы заголовок столбца был обернут.
Я пробовал следующее:
.v-grid-column-header-content .v-grid-column-default-header-content {
white-space: normal;
}
но браузер даже не может увидеть это изменение, поэтому я, вероятно, использую неправильные селекторы CSS. Я пробовал довольно много разных селекторов, основываясь на том, что я вижу в браузере и в документации, и ни один из них не работает. Я знаю, что это не работает, потому что, когда я сужаю столбец, перетаскивая его, он не переносится. Когда я добавил white-space: normal;
прямо в браузере, он правильно обернулся.
Кроме того, я каждый раз очищал кеш браузера, чтобы убедиться, что проблема не в нем.
Следующая проблема будет заключаться в том, чтобы автоматически сделать строку достаточно высокой, чтобы перенос имел смысл. Так что если у вас есть идеи на эту тему, пожалуйста, предлагайте их.
Эта функция официально не поддерживается в Vaadin 7 Grid, но в надстройке GridExtensionPack есть расширение переноса заголовков. что вы можете использовать.
Обратите внимание, что в современных версиях Vaadin, таких как 14, 23 или 24, это тривиально поддерживается.
Согласно источнику, мне, возможно, не придется устанавливать ширину. Может быть, это как-то связано с загрузкой сетки с помощью container.addAll
вместо grid.addRow
? Также не переносится при начальной загрузке Grid
, только после начальной загрузки. Странный. На данный момент отключите обтекание и ширину столбцов перед загрузкой сетки, а затем снова включите, когда закончите. Не идеально, но работает.
Я принимаю этот ответ, так как он в основном работает, но для всех, кто находит это: есть много проблем. По сути, мне нужно отключить перенос и установить ширину столбцов неопределенной перед загрузкой контейнера сетки, а затем снова включить перенос с шириной столбцов после, и даже это не работает идеально. Даже в демо, упомянутом выше, это заставляет их включать обтекание кнопкой. Поэтому я думаю, что проблема в том, что что-то нужно делать после того, как Grid полностью загрузится и отобразится на экране (НЕ прикреплен, отображается). Задам это как отдельный вопрос.
Да, я ожидал, что Vaadin 14+ будет лучше. Во всяком случае, GridExtensionPack в основном работает. Похоже, мне нужно будет вручную установить ширину столбцов для переноса «триггера». Даже когда я принудительно пересчитываю ширину столбцов с помощью
grid.recalculateColumnWidths();
, столбцы не уменьшаются, чтобы вызвать перенос. Может я что-то не так делаю?