Как объединить rowStyleClss и rowClasses в t: dataTable - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть три класса стиля css. Каждый из них устанавливает цвет фона строки данных JSF. Один из них будет окрашен в оранжевый цвет строки (rowHighlight), второй - в белый цвет строки (rowWhite), а третий - в серый цвет строки (rowGrey).

При выполнении определенного условия я хочу строка таблицы должна быть оранжевой. Если условие не выполняется, я хочу, чтобы цвет строк чередовался между белым и серым с использованием двух других таблиц стилей. Конечный результат должен иметь строки, окрашенные в оранжевый, белый и серый цвета.

Я читал, что rowStyleClass может добиться изменения цвета строки на основе определенного условия. Я читал, что rowClasses может обеспечить создание строк чередующихся цветов.

Я пытался:

rowStyleClass="#{holidayInfo.country == ‘France’ ? 'rowHighlight' : '’ }"
rowClasses="rowWhite,rowGrey"

Но в результате все строки были белыми.

Я также пытался:

rowStyleClass="#{holidayInfo.country == ‘France’ ? 'rowHighlight' : 'rowWhite,rowGrey'}"

Но это привело к тому, что ряд был окрашен в оранжевый цвет, когда условие было выполнено, а все остальные ряды были белыми.

Кто-нибудь знает, возможно ли объединить оба? Я новичок в JSF.

1 Ответ

0 голосов
/ 27 февраля 2020

Мне удалось решить проблему.

Похоже, что если вы хотите использовать rowClasses и rowStyleClass в одном и том же датированном файле, порядок атрибутов должен быть сначала rowClasses, а rowStyleClass - вторым.

Сначала я поместил rowStyleClass и установил styleClass равным '', если условие не было выполнено. Если это произошло, rowClasses игнорировались после установки класса стиля в ''. Когда я сначала поместил rowClasses, он был выполнен, и цвет строки чередовался между белым и серым. класс atttibute rowStyleClass не был проигнорирован, потому что строки, в которых выполнялось условие, были окрашены в оранжевый цвет.

Спасибо всем, кто помог мне разобраться в этом.

...