Как условно покрасить фон в ячейке таблицы?

Я визуализирую таблицу с помощью 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, у этого есть то преимущество, что не нужен метод поддерживающего компонента.

Однако я по-прежнему получаю только набор цветов фона, а не всю ячейку.

7
задан Xtreme Biker reinstate Monica 14 February 2014 в 09:56
поделиться