2011-08-22 33 views
2

我在Tomcat 6.0和PrimeFaces 2.2.1上使用Mojarra 2.0.3。JSF 2.0 + PrimeFaces:dataTable頁面計數不起作用

我用lazyloading使用dataTable,它沒有問題。現在我添加了分頁,並且表格計算的頁面數量不正確。

<p:dataTable id="tableList" value="#{overview.lazyModel}" rendered="#{!overview.listEmpty}" var="e" 
    paginator="true" rows="10" lazy="true" 
    paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}" 
    rowsPerPageTemplate="5, 10, 20, 50"> 

在第一負載,有時不顯示任何數據,雖然豆正確地發送它(I打印數據,發送到該表中,進Tomcat的控制檯)和也將數據從表(頁面大小,過濾器,sortMode,...)是正確的。

lazyModel = new LazyDataModel<Bericht>() { 
    @Override 
    public List<Bericht> load(int first, int pageSize, String sortField, boolean sortOrder, Map<String,String> filters) { 
     List<Bericht> lazyBerichte;  

     lazyBerichte = [...]; // fill data 
     setRowCount([...]); // set row count 

     return lazyBerichte; 
    };   
} 

我希望這不是在primefaces的錯誤,因爲我不能等到新版本出來(項目必須在3周內準備好)。

有沒有人有想法?我嘗試了一切,但沒有任何工作。來自德國

映入眼簾,安迪

回答

1

好吧,我想你是0得到一個算術異常分裂,試圖實例化你的懶惰數據模型對象後,加入rowCount時和pageSize的。像

lazyModel = new LazyDataModel<Bericht>() { 
    @Override 
    public List<Bericht> load(int first, int pageSize, String sortField, boolean sortOrder, Map<String,String> filters) { 
     List<Bericht> lazyBerichte;  

     lazyBerichte = [...]; // fill data 
     setRowCount([...]); // set row count 

     return lazyBerichte; 
    }; 
    lazyModel.setRowCount(totalRowsNumberWithoutFilters); //you should put here the total rows of your table, something like a select * from x or findAll() jpa method 
    lazyModel.setPageSize(10); //put the rows per page number 
} 
1

您使用以下屬性爲分頁

paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}" 

你一直都是爲paginatorTemplate但是你忘了多加一個

{PageLinks} 

添加這其中也將正常工作。