我不确定为什么会发生这种情况,而且我以前也从未遇到过这种情况。在我正在开发的应用程序中,我使用 a 来显示某些旅行数据。用户选择有关旅行的某些信息(从/到/日期等),然后单击搜索时,数据表会加载结果。
问题:加载数据表时,似乎遗漏了 1 个(或更多)结果。刷新页面时,这次丢失的结果以某种方式显示,从表的大小变化可以看出。但是,单击表格下方的“导出到 Excel”功能(从 PF 内置)已经显示了这个缺失的行,无论是否刷新。这似乎表明它可能是某种 UI 问题?
任何帮助表示赞赏,谢谢!另外,如果您需要任何其他详细信息,请告诉我。
桑吉夫
编辑:primefaces 数据表的代码如下:
<p:dataTable
id="#{viewName}Table"
value="#{resultsBean.legs}"
var="leg"
paginator="true"
rows="20">
<p:column style="white-space: normal">
<f:facet name="header">
Traveler Name
</f:facet>
<h:outputText style="white-space: nowrap" value="#{leg.trip.lastName}, #{leg.trip.firstName}"/>
</p:column>
<p:column style="white-space: normal">
<f:facet name="header">
Email Address
</f:facet>
<h:outputText style="white-space: nowrap" value="#{leg.trip.email}"/>
</p:column>
<p:column style="white-space: normal">
<f:facet name="header">
Mobile Phone
</f:facet>
<h:outputText style="white-space: nowrap" value="#{leg.trip.mobilePhoneNumber}"/>
</p:column>
<p:column style="white-space: normal">
<f:facet name="header">
PNR Locator
</f:facet>
<h:outputText style="white-space: nowrap" value="#{leg.trip.recordLocator}"/>
</p:column>
<p:column style="white-space: normal">
<f:facet name="header">
Travel Type
</f:facet>
<h:outputText style="white-space: nowrap" value="#{leg.type}"/>
</p:column>
<p:column style="white-space: normal">
<f:facet name="header">
Departure / Check-In Date
</f:facet>
<h:outputText style="white-space: nowrap" value="#{leg.fromDate}">
<f:convertDateTime pattern="dd-MMM-yyyy HH:mm"/>
</h:outputText>
</p:column>
<p:column style="white-space: normal">
<f:facet name="header">
Arrival / Check-Out Date
</f:facet>
<h:outputText style="white-space: nowrap" value="#{leg.toDate}">
<f:convertDateTime pattern="dd-MMM-yyyy HH:mm"/>
</h:outputText>
</p:column>
<p:column style="white-space: normal">
<f:facet name="header">
From Location
</f:facet>
<h:outputText style="white-space: nowrap" value="#{leg.fromLocation.id == 0 ? '' : leg.fromLocation.locationName}"/>
</p:column>
<p:column style="white-space: normal">
<f:facet name="header">
To Location
</f:facet>
<h:outputText style="white-space: nowrap" value="#{leg.toLocation.id == 0 ? '' : leg.toLocation.locationName}"/>
</p:column>
<p:column style="white-space: normal">
<f:facet name="header">
From Code
</f:facet>
<h:outputText style="white-space: nowrap" value="#{leg.fromCode}"/>
</p:column>
<p:column style="white-space: normal">
<f:facet name="header">
To Code
</f:facet>
<h:outputText style="white-space: nowrap" value="#{leg.toCode}"/>
</p:column>
<p:column style="white-space: normal">
<f:facet name="header">
Airline / Hotel Name
</f:facet>
<h:outputText style="white-space: nowrap" value="#{leg.carrierName}"/>
</p:column>
<p:column style="white-space: normal">
<f:facet name="header">
Flight / Rail #
</f:facet>
<h:outputText style="white-space: nowrap" value="#{leg.carrierVehicleCode}"/>
</p:column>
<p:column style="white-space: normal">
<f:facet name="header">
CMC
</f:facet>
<h:outputText style="white-space: nowrap" value="#{leg.trip.cmc.name}"/>
</p:column>
<p:column style="white-space: normal">
<f:facet name="header">
Booking Country
</f:facet>
<h:outputText style="white-space: nowrap" value="#{leg.trip.cmc.location.locationName}"/>
</p:column>
</p:dataTable>
看起来由于某种原因,只有第一个结果被切断了。如果桌子上只有一页,那么刷新屏幕会显示缺失的结果。如果有多个页面,则转到下一页并返回第一页也可以解决问题。