【问题标题】:<p:dataTable ajax issues after pagination<p:dataTable ajax 分页后的问题
【发布时间】:2014-12-18 22:43:16
【问题描述】:
【问题讨论】:
标签:
jsf-2
primefaces
jsf-2.2
【解决方案1】:
现在我用以下技巧解决了它:
<p:ajax event="page" listener="#{myBean.detectPageEvent}" oncomplete="updateModel()"></p:ajax>
其中 bean detectPageEvent 方法的内容如下所示:
public void detectPageEvent(PageEvent ev) {
//SET page number
((LazyDeviceDataModel) lazyModel).setPageNumber(ev.getPage());
}
js updateModel函数的内容在哪里:
setTimeout(function () {
$('#table-refresh-after-page').click();
}, 10);
在 xhtml 页面中我添加了以下内容
<h:commandButton id="table-refresh-after-page"
styleClass="hide" action="#{myBean.updatePageNumber}">
<f:ajax execute="@form" render="@form"></f:ajax>
</h:commandButton>
updatePageNumber 方法如下所示
public void updatePageNumber() {
DataTable dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot()
.findComponent("my-form:my-table");
dataTable.setFirst(((LazyDeviceDataModel) lazyModel).getPageNumber() * 10);
}
正如我之前所说:我猜它与以下 BalusC 答案有关 [commandLink/commandButton/ajax 支持 bean 操作/侦听器方法未调用][1] (N#4)