最近在做一个项目的时候,前端用EXTJS的PagingToolbar来做的分页,简单的代码如下:、
new Ext.PagingToolbar( {
displayInfo : true,
emptyMsg : '没有数据显示',
displayMsg : '显示第 {0} 条数据到 {1} 条数据,共 {2} 条数据',
store : this.store,
pageSize : 15,
plugins : [ this.filters ] //过滤页面只显示哪些列
})
filters : new Ext.ux.grid.GridFilters( {// 过滤页面只显示哪些列
encode : true,
filters : [
{type : 'string',dataIndex : 'bizname'},
{type : 'string',dataIndex : 'synrdiff'},
{type : 'string',dataIndex : 'SYNRTIME'},
{type : 'string',dataIndex : 'SYNRSUCCESS'},
{type : 'string',dataIndex : 'SYNRFAILED'},
{type : 'string',dataIndex : 'SYNRSIDE'}
]
})
后台用的hibernate的分页,简单的代码如下:
Query query = null;
session = super.getSession();
// query = session.createSQLQuery(hql);
query = session.createSQLQuery(hql).addScalar("SSUCCESS", Hibernate.INTEGER).addScalar("SNUM", Hibernate.INTEGER).
addScalar("SYNRFAILED", Hibernate.INTEGER).addScalar("SYNRTIME", Hibernate.DATE).addScalar("SYNRDIFF", Hibernate.STRING);
query.setFirstResult(start);
query.setMaxResults(limit);
list = query.list();
total = list.size();
StringBuffer sb = new StringBuffer("{total:\"");
sb.append(total).append("\",data:[");
//这里只是简单的代码呈现
注意前台设置的pageSize=15,而我后面的total为list的size,所以如果数据大于15条的话,就只显示15条,而小于15条的时候是可以正确的显示的,这个问题开始的时候困挠了我很久,最后,在检查代码时候发现,这里的total是不能为list的size的,只能为SQL语句查询时候的数据量。这里设置了maxResults,所以total最大值为15,所以只能显示为1页。
本文详细介绍了使用EXTJS实现分页功能,并与后台使用hibernate进行分页处理时遇到的问题及解决方案。主要关注于如何确保前台设置的分页参数与后台SQL查询结果相匹配,避免数据展示错误。

3175

被折叠的 条评论
为什么被折叠?



