在按列排序后,我一直在寻找解决 DataTable 实时滚动问题的方法。
首先我发现“列”应该有固定的宽度:
http://code.google.com/p/primefaces/issues/detail?id=1333
然后我发现应该使用scrollRows而不是rows
http://code.google.com/p/primefaces/issues/detail?id=1236
尽管我已经进行了这些更改,但我无法在按列排序后放置实时滚动。
任何人都可以帮助我吗?
感谢和问候。
<p:dataTable id="simulationProductDtId" emptyMessage="#{msgs.notFoundSimulationDetail}" var="item"
value="#{SimulationResultProductBean.simulationSummaryDetailList}"
scrollable="true"
scrollRows="25"
scrollHeight="350"
liveScroll="true"
resizableColumns="true"
style="border-bottom:1px solid #427CC7; overflow:scroll;position: relative;max-width: 100%;overflow-x: hidden"
rowStyleClass="#{(SimulationResultProductBean.collapseSuperCode and item.gam) ? 'row' : null}"
selection="#{SimulationResultProductBean.selectedSimulationDetail}" selectionMode="multiple"
rowKey="#{item.id}">
<f:facet name="header">
...
</f:facet>
<p:column sortBy="#{item.productCode}" width="40"
rendered="#{DynamicSimulationTableBean.columnRenderedMap['productCode']}">
<f:facet name="header">
<h:outputLabel value="#{msgs.code}"/>
</f:facet>
<h:outputText value="#{item.productCode}" >
<f:convertNumber type="number" integerOnly="true" groupingUsed="false"/>
</h:outputText>
</p:column>
<p:column sortBy="#{item.productName}" style="width:100px"
rendered="#{DynamicSimulationTableBean.columnRenderedMap['productName']}">
<f:facet name="header">
<h:outputLabel value="#{msgs.description}"/>
</f:facet>
</p:column>
//Other columns with fixed widths...