【发布时间】:2015-12-08 11:37:55
【问题描述】:
我有一个这样的 primafaces 数据表
<pf:dataTable id="#{controller.tableComponentId}"
rows="#{controller.rowsPerPage}"
rowsPerPageTemplate="#{controller.rowsPerPageTemplate}"
<pf:ajax event="page" listener="#{controller.onPageChange}"/>
/>
我的问题是当用户更改要显示的行数时。 page 事件被触发,但使用旧的 rows 值。因此,如果行的初始值为 10,那么用户将其更改为 25。我仍然读取值 10,然后 JSF 调用 rowsPerPage 设置器。
我知道这个线程PrimeFaces dataTable: how to catch rows-per-page event? 基本上是同样的问题。我尝试了这里提到的解决方案,但它对我不起作用。我也使用分页,但为了简单起见,我没有把它放在我的代码中。
我也尝试使用 process="@form" 并读取请求参数映射,但是在 ajax 请求中没有发送“dt_rppDD”值。任何其他建议如何做到这一点?
【问题讨论】:
-
rowsPerPage 设置器在 RENDER_RESPONSE 上触发,
onPageChange(PageEvent event)被触发。如果你需要新的行值,你可以得到它Faces.getRequestParameter(((UIComponent)event.getSource()).getClientId().concat("_rows"))
标签: jsf primefaces datatable