Применить стиль к определенному льду: колонка

Мой вопрос довольно простой, но не могу найти ответ в Google. Мне интересно, пропустил ли я что-то в компоненте ice: column.

Я использую код как:

<ice:panelGrid columns="3">
  <ice:column style="background-color: yellow;">
    <ice:outputText value="..." />
  </ice:column>
  <ice:column>
    // row content
  </ice:column>
  <ice:column>
    // row content
  </ice:column>

  // other rows
</ice:panelGrid>

Кажется, что компонент column имеет атрибут style и styleClass, однако в HTML ничего не отображается.

Как применить стиль к ячейке таблицы с помощью IceFaces?

Заранее спасибо за ответ.

1 ответ

Решение

Вроде как стандарт JSF <h:panelGrid> <ice:panelGrid> имеет columnClasses атрибут, который позволяет вам указывать разделенный запятыми список классов столбцов, которые должны впоследствии применяться к столбцам. Также в стандартном JSF <h:panelGrid>, <h:column> не поддерживается. Это поддерживается только в <h:dataTable>, Вместо этого каждый прямой ребенок <h:panelGrid> рассматривается как один столбец, который может быть просто <h:outputText> или же <h:panelGroup> если у вас есть несколько компонентов, которые нужно поместить в один столбец.

Итак, это должно сделать:

<ice:panelGrid columns="3" columnClasses="col1,col2,col3">
    <ice:panelGroup>row 1 col 1</ice:panelGroup>
    <ice:panelGroup>row 1 col 2</ice:panelGroup>
    <ice:panelGroup>row 1 col 3</ice:panelGroup>

    <ice:panelGroup>row 2 col 1</ice:panelGroup>
    <ice:panelGroup>row 2 col 2</ice:panelGroup>
    <ice:panelGroup>row 2 col 3</ice:panelGroup>

    ...
</ice:panelGrid>

который будет генерировать

<table>
  <tbody>
     <tr>
       <td class="col1">row 1 col 1</td>
       <td class="col2">row 1 col 2</td>
       <td class="col3">row 1 col 3</td>
     </tr>
     <tr>
       <td class="col1">row 2 col 1</td>
       <td class="col2">row 2 col 2</td>
       <td class="col3">row 2 col 3</td>
     </tr>
     ...
   </tbody>
</table>

Вы можете указать стиль в .col1, .col2 а также .col3 занятия обычным способом.

.col1 {
    background: yellow;
}
Другие вопросы по тегам