目标:当用户进行新搜索时,我想将分页重置为第 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}" />
搜索动作:
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 中并没有按预期工作。可以提供的任何帮助将不胜感激。