我有:Primefaces PAGINATE懒惰的DataTable不计排
在我的豆 <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)setRowCount。我不想从数据库中获取数据,因为我确信我们可以在不请求数据库的情况下计算rowCount。
这会更新数据表。两次。查询被执行两次...不是我想的。 – Kukeltje
不管先生何先生都知道,在判断人员之前,先阅读问题和解决方案。显然,你不知道primefaces数据表的懒惰加载和它是如何工作的! –
首先,我不是在判断人,我在判断答案。虽然它可能在技术上有效,但它不是一个有效的解决方案,也不是必需的。显而易见你说的是阅读答案。 **我是创建了我接受的PrimeFaces补丁的人,你注意到了吗?**我在论坛和旧版本的发行者中为PrimeFaces数据表提供了多项其他改进建议,包括嵌套在数据表中重复一遍。我有那些在我的环境中工作了很长时间,所以我知道**延迟加载**。所以请在判断人员之前直接获取记录** – Kukeltje