Я визуализирую таблицу с помощью p:dataTable(PrimeFaces), и я хочу раскрасить фон ячеек в зависимости от ценность их содержания. Это отличается от окрашивания строки или столбца — это отдельная ячейка.
Сначала проблема с CSS. Если я сделаю это:
<p:column headerText="xyzzy">
<div style="background-color: green">
<h:outputText value="#{rowVar.anumber}" >
<f:convertNumber groupingUsed="true" />
</h:outputText>
</div>
</p:column>
будет установлен цвет фона только содержимого , а не всей ячейки. Другими словами, заполнение по-прежнему остается значением по умолчанию.
Во-вторых, я хочу сделать строку styleпеременным выражением. Я могу добавить функцию в вспомогательный компонент, но как мне получить доступ к содержимому таблицы в методе? Будет ли это работать?
<div style="#{bean.computeCSS(rowVar.number}">
РЕДАКТИРОВАТЬ:
Я нашел способ сделать условную часть, но мне все еще нужна помощь с частью CSS. Мое решение выглядит следующим образом:
<p:column headerText="xyzzy">
<div class="#{rowVar.anumber gt 0 ? 'colored' : ''}">
<h:outputText value="#{rowVar.anumber}">
<f:convertNumber groupingUsed="true" />
</h:outputText>
</div>
</p:column>
Хотя я не люблю фантазировать на EL, у этого есть то преимущество, что не нужен метод поддерживающего компонента.
Однако я по-прежнему получаю только набор цветов фона, а не всю ячейку.