Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > jsf dataTable подсветка по значению


Автор: sneer 1.5.2009, 02:49
Есть таблица айди товар и т.п. потом идет розничная цена и оптовая. И процент наценки если он меньше 50% то подкрашивать его красным если там скажем 50-60% жёлтый 70% зелёный. Как это реализовать?

Автор: powerOn 1.5.2009, 11:27
В зависимости от значения рендерить элемент с определенным стилем. Что-то типа того получится:

Код

    <style>
        .highlighted {
            background-color: yellow;
        }
    </style>
    <h:form>
        <h:dataTable value="#{SimpleBean.data}" var="row" border="1">

            <h:column>
                <h:outputText value="#{row.title}"/>
            </h:column>

            <h:column>
                <!-- если значение меньше 50 то рендерим элемент с желтым фоном -->
                <h:outputText rendered="#{row.value lt 50}" styleClass="highlighted" value="#{row.value}"/>
                <!-- если больше - то с фоном по умолчанию -->
                <h:outputText rendered="#{row.value ge 50}" value="#{row.value}"/>
            </h:column>

        </h:dataTable>
    </h:form>

Автор: necromancer 4.5.2009, 16:53
интересно а styleClass не может принимать EL?

Автор: powerOn 4.5.2009, 21:02
Цитата(necromancer @  4.5.2009,  17:53 Найти цитируемый пост)
интересно а styleClass не может принимать EL?


может, но я не сторонник такого подхода. не хочу в полях бина хранить имена css стилей. 

Автор: necromancer 5.5.2009, 12:25
*предположим он принимает EL* тогда:
Код

            <h:column>
                <!-- если значение меньше 50 то рендерим элемент с желтым фоном -->
                <h:outputText rendered="#{row.value lt 50}" styleClass="highlighted_#{row.value lt 50}" value="#{row.value}"/>
            </h:column>


PS А я не сторонник нагромождения JSP кода =)

Автор: powerOn 5.5.2009, 13:42
тогда уж:
Код

<h:outputText styleClass="#{row.value lt 50 ? 'highlight' : ' '}" value="#{row.value}" />

Автор: necromancer 5.5.2009, 14:33
ну я не спец в сложных EL, к тому же поставщики EL разные и могут возникнуть трудности при ресолве. =) но согласись - так изящнее и понятнее чем много доп тэгов =)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)