Richfaces 4重置分页

时间:2013-10-04 13:12:49

标签: jsf-2 richfaces seam2

目标:当用户进行新搜索时,我想将分页重置为第1页。

代码:

search.xhtml

<rich:datatable id=searchResultsTable value=#{SearchAction.searchResults}"
                render="scroller" first="#{SearchAction.firstRecord}">
    <!-- columns here -->
</rich:datatable>

<rich:dataScroller id="scroller" page = "#{SearchAction.currentPage}" for="searchResultsTable"/>

搜索面板:

<!-- headers and other stuff -->
<h:commandButton actionListener="#{SearchAction.resetPage}" 
                 action="#{SearchAction.performSearch}" />

SearchAction:

private int currentPage;
private int firstResult;

public void performSearch()
    {
    //do search stuff
    }

public void resetPage()
    {
    setCurrentPage( 1 );
    setFirstResult( 0 );
    }

//Getters and Setters

当前行为:搜索,转到第2页,第2页显示。新搜索,页码是一个,但表显示第2页的数据。 (每页限制行数为20,总行数限制为25,因此很容易辨别)

预期行为:应将页面重置为1,并显示第一个结果。

根据我的阅读,这在Richfaces 3.3中有效,但它没有像4.2中预期的那样工作。我们非常感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

找到了使用第一个API的工作。有点烦人的是它显示结果的第一页,然后重新呈现新的结果,但它比不工作更好。

searchPanel.xhtml

<a:commandButton action="#{SearchAction.performSearch()}" 
                 onbegin="#{rich:component('waitPanel')}.show()"
                 onbeforedomupdate="#{rich:component('waitPanel')}.hide()"
                 onclick="#{rich:component('scroller')}.first()
                 render=searchResultsTable scroller"/>