首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Ext中的分页兑现小解

2012-11-23 
Ext中的分页实现小解????? 最近开发用EXT+SSH,开发的不亦乐乎,突然遇到一个问题------分页,经过一天的尝试

Ext中的分页实现小解

????? 最近开发用EXT+SSH,开发的不亦乐乎,突然遇到一个问题------分页,经过一天的尝试最后解决问题,网上有很多的文章写这个的,但是我感觉写的人肯定知道了怎么去做,但是看的人是一面的雾水.希望我写的对大家有所帮助.

????? 我实现的是对Grid的分页,使用到的有GridPanel ,Pagingbar,JSonStore.使用的的是struts2.0+hibernate.

????? 首先、说一下JSonStore;

????????????????cityStore=new Ext.data.Store({//配置分组数据集
????????????????? autoLoad :{params:{start:0,limit:2}},
????????????????? reader: new Ext.data.JsonReader({
???????????????????? totalProperty:'results',
???????????????????? ?root : "cities",
?????????????????????? fields : [
??????????????? ???????????? ?{name: 'cityId'},
?????????????????????????? ? ?{name: 'cityName'},
??????????????????????????? ? {name:'longitude'},
???????????????????????????????{name:'latitude'},
?????????????????????????????? ? {name:'cityDescription'}]
???????????????????????? ? }),

????????? 其中重要的有三个变量:start limit totalProperty,在autoLoad:中的start ,limit 是用来设置开始加载store时候使用,相当于第一次显示的记录,limit 要与pagingBar 中的pasgeSize 数值一样、再一个是totalProerty是记录的总数,是所有记录的数量,不是json返回的记录数量,这就决定了,我们在生成json数据的时候,返回的results,是所有的记录的数量,而不是一页包含的记录数,因为pagingbar的分页数量是根据jsonStrore中totalProperty和pagingbar中的pageSize计算主来的。

?????其次、说一下pagingbar

????????? var pagingBar=new Ext.PagingToolbar(
?????????? {
?????????? //params:{start:0,limit:2},
?????????? store:cityStore,
?????????? pageSize:2,
?????????? displayInfo:false,
?????????? displayMsg:'第{0}条到{1}条,一共{2}条',
?????????? emptyMsg:'没有记录'
?????????? });

??????? 里面重要的数据有pageSize,params{start ,limit},store,pageSize是一页显示的记录数,params{start,limit}是pagingbar默认的参数,可以自己定义,这两个参数是用在action中的接收参数,action根据stat limit来获得要返回的json中的记录内容,并把内容传递给jsonStore,store就不说了,就是自己定义的那个cityStore.

?????? 再次、说一说action,action是关键的,它要接受start limit两个参数,根据这两个参数从数据库中获得记录集合,同时要获得所有记录的总数,并且把记录的总数要作为数据传递给store,results在这个里子中是这样的。长久没有解决这个问题,原因就是没有想到这一点,最后才发现,很多文章,在这一点,没有介绍清楚,我想是大家都知道,都没有点明,这让我饶了一个大弯,通过不段的测试和假设才发现原因,不过还要感谢你们帮助我找到问题的原因。

?????? 最后、简单说一下hibernate,在数据库操作类,定义一个根据开始位置和增加量的方法。

public List getCitys(final int begin, final int end) {
??// TODO Auto-generated method stub
??final String hql="from City";
??final int cityCount=this.getCityCount();//获得所有的记录数量
??List list=(List)this.getHibernateTemplate().execute(new HibernateCallback()
??{

???public Object doInHibernate(Session session) throws HibernateException, SQLException {
????// TODO Auto-generated method stub
????Query query=session.createQuery(hql);
????int first,last;
????List listTemp;
????if(begin<cityCount)
????{
????if(begin>0)
????{
?????first=begin;
????}
????else
????{
?????first=0;
????}
????if(end<cityCount-begin)
????{
?????last=end;
????}
????else
????{
?????last=cityCount-begin;
????}
????query.setFirstResult(first);
????query.setMaxResults(last);
?????? listTemp=query.list();
????}
????else
????{
?????listTemp=null;
????}
????return listTemp;
???}
???
??});
??return list;
?}

1 楼 yuankai 2009-04-10   谢谢哥们!我为了这个   totalProperty:'results'搞了一下午了,刚用Ext,谢谢!帮了我大忙。 2 楼 hemin108 2009-07-04   标记下  待会得用呢··呵呵··谢了

热点排行