2016-01-04 33 views
0

我正在設計一個應用程序,其中某些輸入源通過primefaces數據表輸入。Primefaces數據表分頁更新後不工作

版本規格: PrimeFaces - 4.0 JSF - 2.1.6

面臨的問題:數據表更新後 分頁符。看起來像在數據表觸發更新事件之前,分頁完美地工作。映射到此數據表的列表位於「查看範圍」下。

請找我的XHTML代碼下面的數據表,

<p:dataTable var="profile" value="#{manualNBean.manualNlist}" 
            rows="10" paginator="true" paginatorPosition="bottom" 
            rowIndexVar="rowIndex" lazy="true" 
            paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" 
            rowsPerPageTemplate="10,50,100,200" id="statustab"> 

            <p:column headerText="S.No"> 
             <p:outputLabel value="#{rowIndex+1}" /> 
            </p:column> 

            <p:column headerText="Profile ID"> 
             <p:outputLabel value="#{profile.profileID}" /> 
            </p:column> 

            <p:column headerText="Law Firm Name"> 
             <p:outputLabel value="#{profile.lawFirmName}" /> 
            </p:column> 

            <p:column headerText="First Name"> 
             <p:outputLabel value="#{profile.firstName}" /> 
            </p:column> 

            <p:column headerText="Second Name"> 
             <p:outputLabel value="#{profile.secondName}" /> 
            </p:column> 

            <p:column headerText="Full Name"> 
             <p:outputLabel value="#{profile.fullName}" /> 
            </p:column> 

            <p:column headerText="Profile Link"> 
             <h:outputLink value="#{profile.profileLink}" target="_blank">#{profile.profileLink}</h:outputLink> 
            </p:column> 
            <p:column headerText="PPTS N" id="editNCol"> 
             <p:commandButton icon="ui-icon-pencil" process="@this" 
              update="statustab" rendered="#{profile.editbuttonRender}" 
              action="#{manualNBean.turnoffRender}"> 
              <f:setPropertyActionListener value="#{profile}" 
               target="#{manualNBean.manualNDTO}" /> 
             </p:commandButton> 
             <p:autoComplete id="manualN" minQueryLength="3" 
              value="#{profile.manualN}" 
              style="#{profile.autocompletebuttonRender}" 
              completeMethod="#{manualNBean.autocompleteN}"> 
             </p:autoComplete>           
            </p:column>                    
           </p:dataTable> 

這裏,命令按鈕執行更新操作。即使執行更新操作後,懶惰模型似乎仍充滿了數據庫的記錄,但我不知道爲什麼分頁打破。

注意:通過添加ajax =「false」屬性到按鈕,頁面重新加載,現在分頁似乎工作正常。但是,這是不可行的,並期待用Ajax來控制這一點。

只需添加另一個註釋,該數據表僅在點擊按鈕後才從數據庫填充信息。

有人可以告訴我哪裏出錯了嗎?

回答

2

而不是在p:commandButton上使用update屬性,我更新操作方法中的一行。現在分頁似乎不會中斷。有兩個選項,我用第一個。

  • 爲此使用OmniFaces AJAX實用程序。

    解在p:commandButton屬性action被如下使用,

    public void updateRow(UIData table) { int index = table.getRowIndex(); Ajax.updateRow(table, index); }

  • 使用純PrimeFaces溶液在搜索表達式框架 documentationshowcase

    服務器端方法的形式看起來像這樣然後:

    public void updateRow(UIData table) { int index = table.getRowIndex(); RequestContext.update(table.getClientId() + ":@row(" + index + ")"); }

相關問題