Primefaces Paginator总是跳到第1页

时间:2014-07-02 13:18:15

标签: jsf primefaces datatable pagination

在PF 4.0中,如何在更新数据表并应用oncomplete="dt1Widget.filter()"之后使分页器转到正确的页面?

对话框中的按钮应该保存某个元素,然后更新数据表,再次应用过滤器(由我自己的DataTableRenderer保存),并保持打开对话框时我所在的页面。这意味着我按照某些标准进行过滤,转到第7页,编辑元素,按保存,然后仍然想要在第7页上。

我的数据表

<p:dataTable id="dt1" var="tVar" value="#{regelBean.queriedElements}" scrollable="false"
  paginator="true" paginatorAlwaysVisible="true" rows="10"
  rowsPerPageTemplate="10,25,100" paginatorPosition="bottom" widgetVar="dt1Widget"
  filteredValue="#{regelBean.filteredElements}" first="#{regelBean.paginatorFirst}">
  ...
  <p:ajax event="page" listener="#{regelBean.onPageChange}"/>

对话框内的按钮

<p:commandButton value="Speichern #{regelBean.paginatorFirst}" 
  update="@form :form1:dt1" actionListener="#{regelBean.save}" 
  oncomplete="dt1Widget.filter(); dt1Widget.getPaginator().setPage(#{regelBean.paginatorPage});"/>

甚至试过这个

public int getPaginatorPage() {
  DataTable d = (DataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent(":form1:dt1");
  System.out.println("d.first " + d.getFirst()); // always 20 since I was on page 3
  return d.getFirst()/10;
}
当我在第3页时(按预期的那种),按钮标签上的

paginatorFirst为20。保存之后,我将永远登陆第1页。我非常感谢快速帮助,因为我将在2天内停止处理此项目,并希望在此之前解决此问题。感谢

修改 到底发生了什么事?我试过了

<p:commandButton value="x" update=":form1:dt1" 
  onstart="#{regelBean.saveFirst()}; alert('A'); " 
  oncomplete="dt1Widget.filter(); #{regelBean.oncompl()}; alert('! #{regelBean.paginatorFirst} !');"/>
随机(不)调用

和saveFirst()。此外,直到第二次警报一切都没问题。但是在第二次提醒之后,我被发送到第1页。当我重新加载页面时,我将登陆第3页......

0 个答案:

没有答案