我一直在与Primefaces交往困难,因此SO是找到问题答案的最终场所。
我有许多列的p:dataTable
,因此它们每个都应具有较短的宽度。对于标题,它们似乎还可以,但对于数据列,它们会分成2行或更多行,我不希望这样做。
我增加了第一列的宽度以显示数据表中的内容。 header 文字很好,将其保留为单行。但是数据列对我不利。我希望他们将其保留为单行。我不希望换行。椭圆是可取的,但不是强制性的。
<p:dataTable id="searchResultTable" var="searchData" value="#{registerBean.searchDataList}"
scrollHeight="200"
rowIndexVar="rowIndex"
rowKey="#{searchData.model}"
selectionMode="single"
selection="#{registerBean.selectedSearchData}"
paginator="true" rows="10"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="5,10,20" resizableColumns="true">
<p:ajax event="rowSelect" listener="#{registerBean.onSelectedSearchData}"/>
<p:column headerText="#{registerBean.getSearchResultHeaderText(0)}"
width="30" style="height: 10px; font-size: 8pt;">
<h:outputText value="#{registerBean.getSearchResultText(rowIndex,0)}" />
</p:column>
<p:column headerText="#{registerBean.getSearchResultHeaderText(1)}"
width="30" style="10px; height: 10px; font-size: 8pt;">
<h:outputText value="#{registerBean.getSearchResultText(rowIndex,1)}" />
</p:column>
<p:column headerText="#{registerBean.getSearchResultHeaderText(2)}"
width="30" style="10px; height: 10px; font-size: 8pt;">
<h:outputText value="#{registerBean.getSearchResultText(rowIndex,2)}" />
</p:column>
我为每一列使用了
h:outputText
。我不会坚持使用h:outputText
,我可以与Primefaces一起使用的任何组件都可以。提前致谢。
最佳答案
我可以找到解决方案。将下面显示的CSS添加到<p:column/>
中对我来说很有效。省略号无效,但没有换行,没有扩大的行高。
<style type="text/css">
.singleLine
{
text-wrap:none;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
</style>
并这样做:
<p:column headerText="Something"
width="100" styleClass="singleLine" style="height: 10px; font-size: 8pt;">
<h:outputText value="#{something.value}" />
</p:column>
我希望它将对这个地球上的少数人有所帮助。