以下代碼在應用過濾之後未正確更新當前數據錶行數。有時我必須在輸入文本後在過濾器輸入框中按兩次Enter鍵,才能正確更新計數。有時它只是在輸入文本並且不按回車鍵後才起作用。有時我也可以只輸入一次輸入密鑰,並且計數已正確更新。我不明白爲什麼我會得到這種不同的行爲。也許JSF/Primefaces專家可以幫助我理解這一點?Primefaces當前行數在過濾後頁面中未正確更新
<h:form id="summaryForm">
...
<p:tabView id="summaryTabView">
...
<p:tab id="allTab" title="All">
...
<script type="text/javascript">
//<![CDATA[
function updateAllRecordCount(){
var rowCount = PF('allTblWidget').paginator.cfg.rowCount;
//alert(rowCount);
var output = document.getElementById('summaryForm:summaryTabView:allTable:allCount');
if (output != null){
output.innerHTML = rowCount + " Records";
}
}
//]]>
</script>
<p:dataTable widgetVar="allTblWidget"
id="allTable"
var="pb"
value="#{statisticsBean.all}"
emptyMessage="No data available!"
rowKey="#{pb.rowId}"
scrollable="true" scrollHeight="440"
selection="#{statisticsBean.selectedBean}"
selectionMode="single"
editable="true"
editMode="cell"
paginator="true"
rows="300"
paginatorAlwaysVisible="false">
<p:ajax event="filter" oncomplete="updateAllRecordCount();"/>
<f:facet name="header">
<p:menubar styleClass="tableMenuClass">
...
<f:facet name="options">
<h:outputText id="allCount" style="font-size:14px;" value="#{statisticsBean.all.size()} Records"/>
</f:facet>
</p:menubar>
</f:facet>
...
它是否在數據表本身錯誤更新或在您的JavaScript更新額外的'allCount'字段?並且請發佈版本信息並使其成爲[mcve](例如,是否與選項卡相關?) – Kukeltje
在allCount字段中錯誤地更新了計數。有時它是以前的計數,有時它是正確的,有時我必須按兩次Enter鍵才能正確更新。 PF版本是5.1。 –
標籤無關緊要。 –