`
hatlar
  • 浏览: 23436 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Ext中的分页实现小解

    博客分类:
  • 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;
 }

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

相关推荐

    Ext实现分页查询,前台

    本示例主要介绍了如何使用Ext.js这个JavaScript框架来实现前端的分页查询功能。 首先,创建一个名为`resource`的数据存储(Store),它负责从服务器获取数据。这里的`Store`对象定义了字段(fields)、数据源URL...

    ext分页客户端demo Java js

    在这个"ext分页客户端demo Java js"的示例中,我们将探讨EXTJS如何实现客户端分页,以及如何与后端(如Java)进行数据交互,而无需在服务器端编写额外的Java代码。 EXTJS中的分页组件主要由Ext.grid.Panel和Ext....

    EXT分页工具条

    EXT分页工具条是一款在Web应用中常用的组件,主要用于展示数据集的分页信息,让用户能够方便地浏览大量数据。EXT是一个强大的JavaScript框架,它提供了丰富的UI组件和数据管理功能,使得开发人员能够构建高性能、...

    Ext grid 分页实例源码

    Ext grid PagingToolbar分页实例源码Ext grid PagingToolbar分页实例源码Ext grid PagingToolbar分页实例源码Ext grid PagingToolbar分页实例源码

    Ext中对于多种store数据分页实现示例

    本文将深入探讨EXT中对多种store数据分页的实现方式。 首先,EXT提供了两种主要的分页模式:客户端分页(Client Paging)和服务器端分页(Server Paging)。客户端分页适用于数据量不大,且可以一次性加载到内存中...

    ext grid json分页显示

    在IT领域,尤其是在Web开发中,"ext grid json分页显示"是一个常见的需求,它涉及到前端数据展示和后端数据交互的关键技术。本例中提到的解决方案是利用DWR(Direct Web Remoting)和EXT.js库来实现。下面将详细阐述...

    EXT树表分页(SERVLET)

    在EXT中,树(Tree)和表格(Grid)是两种重要的数据展示组件,它们可以单独使用,也可以结合成树表(TreeGrid)以同时展示层次结构和表格数据。 在EXT树表中,分页(Pagination)是一项关键功能,用于处理大量数据...

    简单的小例子Ext+servlet 分页

    本示例探讨了如何结合Ext JS(一个强大的JavaScript框架)和Servlet(Java Web开发中的服务器端组件)来实现简单的分页功能。下面将详细解释这个主题。 首先,Ext JS是一个用于构建用户界面的前端JavaScript库,它...

    Ext组合框comboBox带分页

    用EXT来实现下拉框ComboBox 下拉框可以实现分页

    Ext 本地分页PagingStore.js

    可以直接在本地对数据进行分页显示,很强大!!!!(分页可以是JSON格式 也可以是Array格式)

    Ext4.0分页的Grid例子

    后台使用的是struts2生成Ext所需要的json,把webroot下的ext4下面加入ext的开发包,然后再把create.sql中的脚本在数据库中执行,代码就可以跑起来了,我用的是mysql数据库

    ext TreeGrid分页可编辑

    - 由于`Ext TreeGrid`的分页实现涉及到了前后端的数据交互,因此还需要关注前端与后端之间的数据同步问题,确保数据的一致性和完整性。 通过以上步骤,我们可以实现一个具备分页功能的可编辑`Ext TreeGrid`组件,为...

    Ext前台分页

    在Ext JS中,实现前台分页主要依靠`Store`对象和`Grid`组件。`Store`是用来存储数据的容器,它可以与`Grid`、`Chart`等组件配合使用,负责数据的加载、更新和管理。`Grid`则是用来展示数据的组件,通常用于表格形式...

    EXT 分页,树形结构案列

    2. Store配置:在EXT中,数据存储在Store对象中,配置分页需要设置`autoLoad`、`pageSize`、`proxy`等相关属性。`proxy`通常设置为`AjaxSource`或`RestProxy`,用于与服务器通信,`reader`属性则定义了如何解析...

    修复Ext3.0.0中自定义分页的小bug

    标题中的“修复Ext3.0.0中自定义分页的小bug”指的是在Ext JS框架的3.0.0版本中,用户在实现自定义分页功能时遇到的一个问题。Ext JS是一个流行的JavaScript库,主要用于构建富客户端Web应用程序,它的组件库包含了...

    EXT2.0动态树,分页!

    在EXT2.0中实现动态树和分页,需要掌握以下关键知识点: 1. **TreePanel**:EXT2.0中的TreePanel是构建动态树的主要组件。它支持动态加载,可以通过配置异步树加载模式,从服务器获取数据。 2. **Store**:存储...

    ext4 表格分页实例代码

    EXT JS中的表格分页通常通过Grid Panel组件实现,该组件可以与数据存储(Store)配合,数据存储负责管理数据,包括加载、过滤、排序和分页。分页功能由Pager Toolbar组件提供,它是一个可自定义的工具栏,包含导航...

    ext设置分页大小.rar

    在EXT中设置分页大小是一项关键任务,这关系到用户如何控制和浏览数据。 标题"ext设置分页大小.rar"暗示了这是一个关于EXT库中调整分页大小的手动教程或者代码资源,可能包含了一些示例文件。描述中的"ext设置 手工...

    Ext.Net 服务器端分页 存储过程

    在这个场景中,我们关注的是"Ext.NET服务器端分页",这是一个优化用户界面性能并提高用户体验的技术。服务器端分页意味着每次只从服务器获取一部分数据,而不是一次性获取所有数据,从而减轻网络负担和服务器压力。 ...

Global site tag (gtag.js) - Google Analytics