`
huoyunshen888
  • 浏览: 83504 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

ExtJs分页精解(java应用)

 
阅读更多
ExtJs的分页做的相当出色!在此,我们简单的分析一下它的分页方法,看看它出色的功能!

首先,常规上一个简单的分页程序需要有以下参数:

1. 总记录数            -------根据条件总查询的总记录数

2. 每页显示记录数      -------限制每页显示的最大记录

3. 总页码数            -------总共可以分几页

4. 当前页码            -------当前第几页

5. 查询条件            -------查询和翻页两个地方都要用到



接下来,要做的就是根据这些参数做一个好看的翻页控件了,原理我不想多解释-------无非是查询出 总记录数,根据 每页显示记录数 算出总页码数,取分页记录数,show到页面上!翻页时仍然要根据查询条件再做一个相同的操作,计算总记录数再分页----因为很有可能查询的总记录数在并发操作中会增多或减少!




其次:ExtJS却让我们从这繁杂的工作中解脱啦!

在GridPanel中使用分页控件需要提供以下参数:

1.总记录数

2.每页显示记录数

3.查询条件

OK,在GridPanel中添加上Ext.PagingToolbar就搞定啦!

例子:

var pgSize=5;   //=====提供每页显示记录数给分页控件

//===============================查询列表=============================
//====================bookDtore======================
var bookProxy=new Ext.data.HttpProxy({url:'getbookList.action'});
// reader
var dataMeta2=new Object({
     totalRecords: "count",    //=======提供总记录数给翻页控件
      record: "Book",
      id: "id"     
});
var bookRecord=new Ext.data.Record.create([
   {name:'bookid',mapping:'id'},
   {name:'booktypeid',mapping:'booktypeid'},
   {name:'bookName',mapping:'bookName'},
   {name:'booktypeName',mapping:'booktypeName'},
   {name:'author',mapping:'author'},
   {name:'price',mapping:'price'},
   {name:'brief',mapping:'brief'},
   {name:'createDate',mapping:'createDate'}
]);
var bookReader=new Ext.data.XmlReader(dataMeta2,bookRecord);
// store
var bookStore=new Ext.data.Store({
   proxy:bookProxy,
   reader:bookReader
});

//====================grid========================
var topBookTypebar=new Ext.Toolbar([
   {text:'新增书籍',iconCls:'add',handler:addBook},
   {text:'修改书籍',iconCls:'edit',handler:editBook},
   {text:'删除书籍',iconCls:'delete',handler:deleteBook}
]);

var sm=new Ext.grid.CheckboxSelectionModel();
// cm
var bookcm=new Ext.grid.ColumnModel([
   sm,
   {header:'书籍名称',dataIndex:'bookName',sortable:true,width:160},
   {header:'书籍类型',dataIndex:'booktypeName',sortable:true,width:160},
   {header:'作者',dataIndex:'author',sortable:true,width:160},
   {header:'创建日期',dataIndex:'createDate',sortable:true,width:160},
   {header:'价格',dataIndex:'price',sortable:true,width:160},
   {header:'备注',dataIndex:'brief',sortable:true,width:160},
   {header:'id',dataIndex:'bookid',sortable:true,hidden:true,width:160}
]);

var bookgrid=new Ext.grid.GridPanel({
   title:'书籍列表',
   frame:true,
   store:bookStore,
   sm:sm,
   cm:bookcm,
   autoHeight:true,
   renderTo:'griddiv',
   tbar:topBookTypebar,
   bbar: new Ext.PagingToolbar({             //-======定义翻页控件
            pageSize:pgSize,                         // 参数1:每页显示数
            store: bookStore,                         // 数据源---非常重要
            displayInfo:true,
            displayMsg:'显示第{0}条数据到{1}条数据,一共有{2}条',
            emptyMsg:'没有记录'
        })
});

bookStore.load({              // -=====页面自动加载
   params:{                       // =====分页参数
    start:0,                          // =====向后台提供 当前页码
    limit:pgSize                 // =====向后台提供 每页显示记录数
   }
});


非常明显:

1.总记录是由给GridPanel提供数据源的Store提供,在它的DataMeta的totalRecords: "results", 参数总提供,当然这是我们Action中计算出来的

2.每页显示的记录数由PagingToolbar的pageSize:pgSize参数提供,因此这个参数一般是我们定义的一个变量


有人会问:那查询条件呢??我翻页时候查询条件该怎么获得并传递到后台呢?

这个问题问的非常好!!!!

ExtJs已经为我们解决了这个问题,我们只需要把查询条件放在Store的baseParams参数中就可以了,ExtJS会自动把它放入“隐藏域”,在翻页时调用!


demo如下:

var subButton=new Ext.Button({
   text:'查     询',
   handler:function(){
    if(createDate.getValue()!=''){
            var pdate = createDate.getValue();
                var mm = pdate.getMonth() + 1;
                var dd= pdate.getDate();
                var mvalue;
                var dvalue;
                if(mm<10){
                mvalue='-0'+mm;
                }else{
                mvalue='-'+mm;
                }
                if(dd<10){
                dvalue='-0'+dd;
                }else{
                dvalue='-'+dd;
                }
                var strPdate = pdate.getFullYear() + mvalue + dvalue ;
            }
            bookStore.on('beforeload',function(){        // =======翻页时 查询条件
               bookStore.baseParams={
                         'book.bookName':bookName.getValue(),
                         'book.booktype.id':booktypeSelect.getValue(),
                        'book.createDate':strPdate
                       }
            });
         bookStore.reload({                                      // =======翻页时分页参数
                  params:{
                        start:0,
                        limit:pgSize
         }
    });
   }
});
var retButton=new Ext.Button({
   text:'重&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;置',
   handler:function(){
    form1.getForm().reset();
   }
});



开始做你的分页测试吧。。。。。。。

分享到:
评论

相关推荐

    Extjs分页使用java实现数据库数据查询.docx

    ExtJS是一个强大的JavaScript库,常用于构建桌面级的Web应用程序,而Java则是一种广泛使用的后端开发语言,常用于处理服务器端逻辑。在这个场景中,我们看到ExtJS用于前端展示,而Java通过Servlet处理后端数据请求。...

    extjs 分页

    例如,在Java Spring MVC中,可以使用`@RequestParam`注解来获取这些参数,然后在服务端数据库查询中使用这些参数进行分页。 六、扩展性与优化 EXTJS的分页系统可以与缓存策略结合,提高用户体验。例如,预加载...

    extjs 分页是碰到的问题,点击下一页事,查询条件无法传递

    在开发基于Extjs的应用程序时,分页是一项常用且重要的功能。然而,在实际应用过程中可能会遇到一些问题,比如当用户点击“下一页”时,原有的查询条件未能正确传递到后端,导致返回的数据与预期不符。本文将详细...

    SSH+ExtJs分页小例子

    通过理解这些代码,开发者可以学习到如何在Java Web应用中实现高效的数据分页,并且了解前后端交互的基本流程。同时,这也涉及到数据库操作、数据绑定、JSON序列化等关键技能,对于提升开发能力非常有帮助。

    extjs 简单分页例子

    EXTJS是一种基于JavaScript的前端框架,它提供...这是一个基本的EXTJS分页实现,实际应用中可能还需要考虑错误处理、数据过滤、排序等功能。通过这种方式,EXTJS能够帮助开发者高效地构建功能丰富的数据驱动的Web应用。

    ExtJS笔记---Grid实现后台分页

    在IT行业中,ExtJS是一个广泛使用的JavaScript库,用于构建富客户端的Web应用程序。它提供了丰富的组件库,包括数据网格(Grid)等,使得开发者能够创建交互性极强的数据展示和管理界面。这篇“ExtJS笔记——Grid...

    extjs 树型分页组件

    为了解决这个问题,EXTJS提供了一个名为“树型分页”(Tree Paging)的特性。本文将深入探讨EXTJS树型分页组件的工作原理、实现方法及其实用价值。 1. 树型分页原理 树型分页不同于传统的表格分页,因为它需要处理...

    extjs4.2+java经典

    从给定的文件信息来看,我们探讨的主题是“ExtJS 4.2 + Java”的结合应用,这在企业级Web应用程序开发中是一个经典的组合。ExtJS是一个强大的JavaScript库,用于构建复杂的用户界面,而Java则作为后端服务的提供者。...

    extjs学习 分页后台处理

    以下是对EXTJS分页后台处理的详细说明: 首先,`Store`对象是EXTJS中用于存储数据的核心组件。在你的代码中,`Store`被创建并配置了`baseParams`、`JsonReader`和`HttpProxy`。 1. `baseParams`: 这个属性用于传递...

    ExtJs分页

    ExtJS 分页是一种在Web应用中管理大量数据的常见技术,尤其在与Spring MVC框架集成时,能够提供高效的数据展示和交互。在ExtJS中,分页通常与数据网格(Grid)组件一起使用,用于显示从后端服务(如SQL Server 2008...

    extjs4.2 分页combo动态条数 源码

    EXTJS 4.2 是一个流行的JavaScript框架,用于构建富客户端Web应用程序。在这个场景中,我们关注的是在EXTJS的Combobox(下拉框)组件中实现分页和动态加载数据的功能。Combobox通常用于展示有限数量的选项,但在大...

    extjs hibernate spring java direct开发的单页面应用

    本项目是一个使用EXTJS、Hibernate、Spring和Java Direct技术栈开发的单页面应用程序(SPA),它提供了全面的企业级功能,如产品管理、库存控制以及用户和角色管理。下面将详细解析这些技术及其在该项目中的应用。 ...

    Extjs grid分页1

    ExtJS Grid 分页是Web应用中数据展示的重要组成部分,它允许用户高效地浏览大量数据而无需一次性加载所有记录。在本文中,我们将深入探讨ExtJS Grid的分页功能及其实现方式。 首先,ExtJS Grid是一种强大的...

    EXTJS分页全面分析

    通过上述步骤可以实现一个完整的分页功能,不仅能够提高用户体验,还能够有效提升应用程序的性能。开发者可以根据实际需求调整相关配置,如增加排序功能、支持异步加载等,从而更好地满足项目需求。

    SpringMvc+MyBatis+ehcache+ExtJs分页

    Spring MVC、MyBatis、Ehcache和ExtJS这四个技术组件都是开发者们在构建此类应用时常常使用的工具。让我们详细了解一下这些技术以及它们如何协同工作。 首先,Spring MVC是Spring框架的一个模块,专门用于构建Web...

    Extjs chekboxtree PagingTreeLoader 多选、分页

    在IT领域,ExtJS是一个广泛使用的JavaScript库,用于构建富客户端Web应用程序。它提供了一整套组件,包括表格、树形视图、图表等,帮助开发者创建交互式、功能丰富的用户界面。本篇将深入探讨ExtJS中的"Chekboxtree...

    Java + ExtJs示例

    Java和ExtJS是两种在开发Web应用程序时广泛使用的技术。Java是一种多平台的、面向对象的编程语言,常用于后端服务器开发,提供强大的数据处理和业务逻辑支持。而ExtJS是一个JavaScript库,专用于构建富客户端应用,...

    Struts2+Json+ExtJS分页

    1. **Struts2**: 是一个基于Java的开源Web应用框架,它继承了Struts1的优点并引入了更多强大的特性,如拦截器、动态方法调用等。 2. **JSON (JavaScript Object Notation)**: 是一种轻量级的数据交换格式,易于人...

    ext分页客户端demo Java js

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

    extjs+java+mysql通用后台管理

    《EXTJS+Java+MySQL通用后台管理:构建高效B/S架构应用系统》 EXTJS,全称为Ext JavaScript Library,是一款强大的前端JavaScript框架,专为构建富客户端应用而设计。其强大的组件模型、丰富的UI控件以及对数据绑定...

Global site tag (gtag.js) - Google Analytics