【发布时间】:2010-07-27 13:54:07
【问题描述】:
我尝试过这种方式,但无法正常工作。使用呈现的 HTML,我看不到 Header 或 dataTable 行的宽度属性。我正在使用没有任何组件库的 JSF 1.2。可能是什么问题?
【问题讨论】:
标签: jsf
我尝试过这种方式,但无法正常工作。使用呈现的 HTML,我看不到 Header 或 dataTable 行的宽度属性。我正在使用没有任何组件库的 JSF 1.2。可能是什么问题?
【问题讨论】:
标签: jsf
老实说,那个链接的答案对我来说没有意义。 <h:column> 在默认 JSF 实现 does not 中完全支持这些属性。为什么它得到 6 票并被标记为接受,这远远超出了我的理解。这将是无知或巧合(也许提问者和答案都使用 JSF 实现,我不知道哪个有 <h:column> 的渲染器,它自动将所有未知属性转换为真正的 HTML 属性,但至少,标准 JSF RI / Mojarra 不这样做,也许是 MyFaces?)。
也就是说,要单独设置列的样式,您需要使用<h:dataTable> 的columnClasses 属性。它接受以逗号分隔的 CSS 类名字符串,随后将应用于 <h:column> 生成的 <td> 元素。
<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; }
【讨论】:
columnClasses="#{bean.columnClasses}" 那样引用它。