2017-03-07 50 views
0

以下代碼在應用過濾之後未正確更新當前數據錶行數。有時我必須在輸入文本後在過濾器輸入框中按兩次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> 
        ... 
+0

它是否在數據表本身錯誤更新或在您的JavaScript更新額外的'allCount'字段?並且請發佈版本信息並使其成爲[mcve](例如,是否與選項卡相關?) – Kukeltje

+0

在allCount字段中錯誤地更新了計數。有時它是以前的計數,有時它是正確的,有時我必須按兩次Enter鍵才能正確更新。 PF版本是5.1。 –

+0

標籤無關緊要。 –

回答

0

下面列出的解決方法可以讓我顯示過濾後的正確記錄計數 - 我基本上都用在下面的數據表元素中列出的最後3個分頁屬性,以顯示過濾後的正確記錄計數,拿出以前的過濾器事件,JavaScript函數和outputText字段。這個答案並沒有真正回答原來的問題(我認爲PF 5.1中可能存在一個錯誤),但至少它提供了一個解決方法。

<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="true" 
         paginatorTemplate="{CurrentPageReport}" 
         currentPageReportTemplate="{totalRecords} Records"> 
+0

然後至少嘗試檢查它是否可以在新版本中使用。如果分頁器中的PF行數顯示正確的數量,則問題在其他地方 – Kukeltje

相關問題