在我的页面中,我有:
<p:dataTable id="myTable" lazy="true" widgetVar="myTable" value=".." paginator="true" paginatorPosition="bottom" rows="10" ...>
<p:ajax event="page" oncomplete="myTable" />
...
</p:dataTable>
在我的豆子里:
...
private LazyDataModel list;
...
public void search() {
list = new LazyDataModel<SomeDTO>() {
private static final long serialVersionUID = 1L;
List<SomeDTO> result = null;
@Override
public List<SomeDTO> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, Object> filters) {
List<SomeDTO> result = service.search(searchedName, first, pageSize);
// SOME CODE HERE FOR PAGINATION ?? BUT WHAT
return result;
}
};
// HOW TO DELETE THIS EXTRA REQUEST
list.setRowCount(service.search(searchedName));
}
我的问题是如何从结果(大小+1)中设置行计数。我不想从 DB 中获取计数,因为我确信我们可以在不请求 DB 的情况下计算 rowCount。