0

我的问题很基本,但在 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 将样式应用于表格的特定单元格?

提前感谢您的回答。

4

1 回答 1

0

与标准 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.col3classes 中指定样式。

.col1 {
    background: yellow;
}
于 2011-12-30T15:37:24.030 回答