0

我有一个通过 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>
4

2 回答 2

2

您可以使用 EL width="#{column.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>
于 2014-02-06T15:45:44.240 回答
2

为 PrimeFaces 设置列宽的官方方法是使用无单位整数DataTable定义元素的width属性。column像这样:

<p:column width="70">
    <h:outputText value="#{element.prop}" />
</p:column>

您可以使用 EL 让控制器定义宽度。

该建议适用于 PF 的 3.3 和 3.4 版本,对于较旧的版本可能有所不同。在最近的几次版本更新中,细节已经改变了好几次,所以你可能还想查阅迁移指南

于 2012-09-11T12:45:44.120 回答