【问题标题】:JSF 2.0 + PrimeFaces: dataTable page-numeration does not workJSF 2.0 + PrimeFaces:dataTable 页面编号不起作用
【发布时间】:2011-10-31 22:25:30
【问题描述】:

我在 Tomcat 6.0 和 PrimeFaces 2.2.1 上使用 Mojarra 2.0.3。

我使用带有延迟加载的数据表,它可以正常工作。现在我添加了分页,表格计算的页数不正确。

<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">

在第一次加载时,有时它不显示任何数据,尽管 bean 正确发送数据(我打印数据,发送到表,进入 Tomcat 控制台)以及表中的数据(页面大小,过滤器,排序模式, ...) 是正确的。

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 周内准备好)。

有人有想法吗?我尝试了所有方法,但没有任何效果。

来自德国的问候,安迪

【问题讨论】:

    标签: java jsf tomcat datatable primefaces


    【解决方案1】:

    您使用以下属性进行分页

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

    你为 paginatorTemplate 保留了所有东西,但你忘了再添加一个

    {PageLinks}
    

    添加这个也可以。

    【讨论】:

      【解决方案2】:

      好吧,我想你得到一个算术异常除以 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
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-14
        • 2011-11-26
        • 1970-01-01
        • 2011-11-18
        • 2012-09-29
        • 2012-07-28
        • 2012-02-10
        相关资源
        最近更新 更多