У меня проблемы с максимальной высотой в rich: extendedDataTable с использованием RichFaces 3.3.3 final.
Я хотел бы, чтобы таблица имела максимальную высоту, и если таблица не заполняет этовысота (количество строк генерируется динамически), таблица сжимается.
Если я определю высоту таблицы, таблица всегда будет иметь такой размер, независимо от того, будет ли у меня недостаточно элементов для заполнения таблицы.
Для созданиядинамическая высота:
.rich-extdt-maindiv {
height: auto !important;
}
.rich-extdt-maindiv, .extdt-innerdiv {
position: relative !important;
}
.extdt-outerdiv {
height: auto !important;
overflow: visible !important;
}
.extdt-content {
height: auto !important;
max-height: 200px;
}
(взято из http://community.jboss.org/wiki/ExtendedDataTableDynamicHeightAndJIRABugRF-7488)
Однако я хочу иметь возможность изменять максимальную высоту (несколько таблиц разного размера на одной странице).
Также, если я использую этот css, он переопределяет все другие высоты для любой другой расширенной таблицы данных.
В настоящее время я делаю следующее:
height="#{bean.listSize > 0 ? bean.listSize * 19 + 32 > 291 ? 291 : bean.listSize * 19 + 32 : 0}"
для высоты, где 19 - этовысота строки 32 - это высота заголовка, а 291 - максимальная высота, которую я хочу для таблицы.
Это не идеальное решение, так как я хочу решение, которое будет работать, когда отдельные размеры строк различаются.
Я не смог получить вызов JavaScript, работающий с f: verbatim или чем-то подобным (см. Как встроить и вызвать сценарий javascript на странице RichFaces / JSF ), но это не очень хорошее решение, потому чтоустановка максимальной высоты будет устанавливатьмаксимальная высота для каждой таблицы на странице.
У кого-нибудь есть лучшее решение?
Чем больше я пытаюсь понять это, тем больше я считаю, что extendeDataTable ограничен.Я не могу придумать решение этой проблемы, однако я заметил в этой программе таблицы с разным размером строк.Это функция, которая кажется разумной для реализации, но нет способа сделать это.
Последнее обновление:
Я не смог заставить что-либо работать.Я все еще использую эту функцию высоты, ее легко понять и легко контролировать для каждой страницы.Значение «19» пикселей может потребоваться изменить в зависимости от того, какие элементы у вас есть в строке, чтобы сделать строку толще.
С этим решением я не хотел оборачиваться в ячейки, потому что высота основана на количестве строк.Это добавляет немного "..." в конце строки.
Я добавил rich: toolTip (или мою собственную подсказку, потому что я начинаю сомневаться в richfaces), которая отображает остальное содержимое в ячейке при наведении курсора.Не лучшее решение, но оно работает для того, что нам нужно.
И это тот CSS, который вам нужен:
.rich-extdt-maindiv, .extdt-innerdiv {
position: relative !important;
}
.extdt-outerdiv {
overflow: visible !important;
}
Другой CSS в исходном файле был для управления высотой.Они преодолели это в том, что высота была динамичной и контролировали максимальную высоту с помощью одного тега.Это идеальное решение, если вам не нужна динамическая максимальная высота.
Другой вариант, если у вас только одна таблица на страницу, это использовать jQuery для изменения максимальной высоты для .extdt-content.Для меня это не вариант, потому что у нас их несколько на страницу.
Надеюсь, это поможет кому-то еще.
Оператор высоты не совместим с разными браузерами.