Jsf 如何根据数据自动调整p:dataTable列宽?

Jsf 如何根据数据自动调整p:dataTable列宽?,jsf,primefaces,Jsf,Primefaces,当我只使用普通h:dataTable: <h:dataTable var="office" value="#{reportController.data}" width="100%" id="titleRpt" styleClass="data" border="1" cellpadding="2" columnClasses="none,rightAlign,rightAlign,rightAlign,rightAlign,rightAli

当我只使用普通
h:dataTable

<h:dataTable var="office"
        value="#{reportController.data}" width="100%"
        id="titleRpt" styleClass="data" border="1" cellpadding="2"
        columnClasses="none,rightAlign,rightAlign,rightAlign,rightAlign,rightAlign,rightAlign,rightAlign"
        headerClass="tableHeader"
        rowClasses="oddRow,evenRow"
        cellspacing="0" rendered="#{reportController.doDisplay and reportController.reportType eq 'T'}">

我得到以下输出:

但是,一旦我将h:dataTable更改为
p:dataTable
(除了p之外的代码相同),我会得到以下结果:

如何让
PrimeFaces
根据其中的数据自动设置列宽(数据是动态的,从数据库中检索)?我正在使用
平滑度


我之所以选择PrimeFaces而不是普通的JSF版本,是因为我需要数据导出功能,并且
p:dataExporter
要求它嵌套在p:dataTable而不是h表中。

您更喜欢什么(换行、换行、不换行、隐藏、省略号…),当列中的字符串长度太长,不适合水平屏幕时?如果需要,可以设置大小可调的列。默认情况下,如果文本超出列宽,则文本被隐藏。在许多情况下,列宽通常是可调整大小的列的首选方式。我只希望它遵循与
h:dataTable
相同的例程,使每一列的宽度与最长单元格的宽度相同