首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Primefaces Datalist分页

Primefaces Datalist分页
EN

Stack Overflow用户
提问于 2012-04-22 01:53:46
回答 1查看 5.6K关注 0票数 1

我使用了一个带Ajax分页的datalist,第一个页面加载正常,显示了5个结果。它知道我已经得到了相当于3页的结果,但是当我点击到第二页/第三页时,我得到一个空列表。

我的模型扩展了LazyDataModel,当我的页面第一次加载时,我可以在load()方法上设置一个断点,我可以看到它要求的结果是1-5,这很棒。但是点击“页面2”并不会导致对load方法的另一次调用(尽管它确实会导致对我的lazyDataModel字段本身的大约3次调用(只是不会调用其中的load方法)。

这是个新手,尽管我读了很多书,尝试了很多东西,但我不太明白它是如何工作的。在我看来,展示示例并不是很“完整”。

下面是我的代码中最相关的部分(我认为)。抱歉,格式有误:

代码语言:javascript
复制
@PostConstruct
public void LoadData() {
  lazyModel = new LazyDataModel<MessageboardThread>() {

  @Override
  public List<MessageboardThread> load(int first, int pageSize, String sortField, SortOrder so, Map<String, String> map) {
    List<MessageboardThread> result = new ArrayList<MessageboardThread>();

    try {
        result = mbDao.findAll(pageSize, first);
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return result;
  }
};
getLazyModel().setRowCount(mbDao.count());
getLazyModel().setPageSize(pageSize);
}    

每次我单击下一页/上一页/** * @return the lazyModel */ public LazyDataModel getLazyModel() { return lazyModel;}时,都会执行此方法

这是我的xhtml文件

代码语言:javascript
复制
          <p:dataList value="#{messageboardBean.lazyModel}" var="thread" id="threads"  
                paginator="true" rows="5" effectSpeed="fast"  
                paginatorTemplate="{PreviousPageLink} {CurrentPageReport} {NextPageLink} {RowsPerPageDropdown}"  
                rowsPerPageTemplate="5,10,15" type="none"
                paginatorPosition="bottom">  

                    <f:facet name="header">  
                        Conversations 
                    </f:facet>  

                    <p:column>  
                        <h:outputText value="#{thread.title}" style="margin-left:10px" />  
                        <br />  
                    </p:column>  
            </p:dataList> 

我被难住了,真的很感谢你的帮助

另外,我在那里添加了一个@PostContruct注释,因为它看起来是一个进行设置的好地方,但它可能是错误的,我在任何其他示例中都没有看到它,但我也无法获得任何其他示例。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-23 03:30:46

解决了它。我忘了将表单属性包装在h: dataList标记中。它现在运行得很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10261507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档