如何在JSF中设置dataTable呈现列的宽度?

时间:2010-07-27 13:54:07

标签: jsf

JSF h:column tag fix width

我试过这种方式,但我无法使用它。使用呈现的HTML,我看不到Header或dataTable行的宽度属性。我使用JSF 1.2而没有任何组件库。可能是什么问题?

1 个答案:

答案 0 :(得分:40)

诚实地说这个链接的答案对我来说没有意义。默认的JSF实现does not中的<h:column>完全支持这些属性。为什么它获得6票并被标记为接受,这远远超出了我。这将是无知或巧合(也许提问者和答案都使用JSF实现我不知道哪个具有<h:column>的渲染器,它自动将所有未知属性转换为真正的HTML属性,但至少,标准JSF RI / Mojarra不这样做,MyFaces可能吗?)。

也就是说,要单独设置列的样式,您需要使用<h:dataTable>columnClasses属性。它接受一个逗号分隔的CSS类名称字符串,随后将应用于<td>生成的<h:column>元素。

<h:dataTable columnClasses="column1,column2,column3">
    <h:column>...</h:column>
    <h:column>...</h:column>
    <h:column>...</h:column>
</h:dataTable>

这最终会像:

<table>
    <tbody>
        <tr>
            <td class="column1">...</td>
            <td class="column2">...</td>
            <td class="column3">...</td>
        </tr>
    </tbody>
</table>

要指定宽度,只需相应地应用CSS。

.column1 { width: 200px; }
.column2 { width: 100px; }
.column3 { width: 50px; }