установить <td>цвет в <h: столбце> из базового компонента - PullRequest
3 голосов
/ 26 ноября 2011

Есть ли способ установить цвет текста в данных таблицы в формате jsf? я хочу иметь разные цвета для #{_component.displayName} в зависимости от возвращаемого значения метода бина.

    <h:dataTable styleClass="mytable" value="#{cart.items}" var="_component"> 

        <h:column>
            <f:facet name="header"><h3>Item</h3></f:facet>
            #{_component.displayName}
        </h:column>

    </h:dataTable>  

Спасибо

1 Ответ

3 голосов
/ 26 ноября 2011

Если вы хотите установить класс стиля для элемента <td>, вы должны использовать columnClasses атрибут <h:dataTable>:

<h:dataTable columnClasses="col1,col2,col3">

Принимает разделенную запятыми строку имен классов CSS, которые должны последовательно применяться к отдельным столбцам. Вы даже можете позволить ему ссылаться на свойство bean, которое автоматически заполняет нужную строку:

<h:dataTable columnClasses="#{bean.columnClasses}">

Однако каждый класс стилей будет применен ко всему столбцу . Если вы хотите создать отдельную ячейку отдельно, вам лучше обернуть ее в <h:outputText>:

<h:outputText value="#{_component.displayName}" styleClass="#{_component.styleClass}" />

или

<h:outputText value="#{_component.displayName}" styleClass="#{bean.styleClass}" />

или

<h:outputText value="#{_component.displayName}" styleClass="#{bean.styleClass(component)}" />

Или, если ячейка покрывает несколько компонентов, вместо этого оберните их внутри <h:panelGroup> и установите для него styleClass.

...