我有一个带有p:columns
标记的动态列的数据表,并希望为每列指定不同的宽度。
我的代码如下
<p:dataTable id="scheduleDataTable" value="#{scheduleMB.scheduledRecords}" var="sched" rows="10">
<p:columns value="#{scheduleMB.columns}" var="column" columnIndexVar="colIndex" styleClass="day-column">
<f:facet name="header">
#{column.header}
</f:facet>
#{sched[column.property]}
</p:columns>
</p:dataTable>
在css文件中我有宽度
.ui-state-default .day-column{
width: 150px !important;
}
我甚至尝试过styld =“width:150px;”它们都不起作用,使用默认值绘制列。
但我想要不同的列宽,我该怎么做。 我尝试在styleClass =“col1,col2”中指定多个css,在facet中指定
<f:facet name="style">
#{column.size}
</f:facet>
答案 0 :(得分:2)
为PrimeFaces DataTable
设置列宽的官方方法是使用无单位整数定义width
元素的column
属性。像这样:
<p:column width="70">
<h:outputText value="#{element.prop}" />
</p:column>
您可以使用EL让控制器定义宽度。
该建议适用于PF的3.3和3.4版本,对于旧版本可能有所不同。在过去的几个版本更新中,细节已经多次更改,因此您也可以参考migration guide
答案 1 :(得分:1)
您可以使用EL width =“#{column.width}”设置每列的宽度。您的列类需要具有width属性。
<p:dataTable id="scheduleDataTable" value="#{scheduleMB.scheduledRecords}" var="sched" rows="10">
<p:columns value="#{scheduleMB.columns}" var="column"
width="#{column.width}"
columnIndexVar="colIndex" styleClass="day-column">
<f:facet name="header">
#{column.header}
</f:facet>
#{sched[column.property]}
</p:columns>
</p:dataTable>