我有一种情况,分页应该是动态的。这意味着它应该随着 load 方法的每次调用而改变。
我想动态设置 setRowCount() 方法并为 dataTable 提供分页
@Override
public List<ProjectMasterModel> load(int first,int pageSize,StringsortField, SortOrder sortOrder, Map<String, String> filters) {
List<ProjectMasterModel> data=new ArrayList<ProjectMasterModel>();
LazyDataModel<ProjectMasterModel> newdata = null;
ProjectMilestoneDaoImpl milestoneDaoImpl=(ProjectMilestoneDaoImpl) ObjectFactory.getBean("projectMilestoneDao");
SessionFactory sessionFactory=(SessionFactory) ObjectFactory.getBean("sessionFactory");
sessionFactory.getCurrentSession().beginTransaction();
try{
data.addAll(milestoneDaoImpl.populateLazyRandomProjects(first,pageSize));
setRowCount(milestoneDaoImpl.getRowCount_Of_ProjectList());
// very important line to show the pagination
}catch(Exception e){
CmsLogger.errorLog(LazyProjectDataModel.class, e);
}finally{
sessionFactory.getCurrentSession().close();
}
if(sortField != null)
Collections.sort(data,new ProjectMasterModel());
return data;
}
在这里,我使用查询来获取数据大小以设置行数。在给定的情况下,它们可能是添加到数据库中的记录数。所以分页应该动态增加。但是,如果我将 setRowCount() 方法更改为动态值,它不会反映它保持其第一次设置的原始值。