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:'重 置',
handler:function(){
form1.getForm().reset();
}
});
开始做你的分页测试吧。。。。。。。
分享到:
相关推荐
ExtJS是一个强大的JavaScript库,常用于构建桌面级的Web应用程序,而Java则是一种广泛使用的后端开发语言,常用于处理服务器端逻辑。在这个场景中,我们看到ExtJS用于前端展示,而Java通过Servlet处理后端数据请求。...
例如,在Java Spring MVC中,可以使用`@RequestParam`注解来获取这些参数,然后在服务端数据库查询中使用这些参数进行分页。 六、扩展性与优化 EXTJS的分页系统可以与缓存策略结合,提高用户体验。例如,预加载...
在开发基于Extjs的应用程序时,分页是一项常用且重要的功能。然而,在实际应用过程中可能会遇到一些问题,比如当用户点击“下一页”时,原有的查询条件未能正确传递到后端,导致返回的数据与预期不符。本文将详细...
通过理解这些代码,开发者可以学习到如何在Java Web应用中实现高效的数据分页,并且了解前后端交互的基本流程。同时,这也涉及到数据库操作、数据绑定、JSON序列化等关键技能,对于提升开发能力非常有帮助。
EXTJS是一种基于JavaScript的前端框架,它提供...这是一个基本的EXTJS分页实现,实际应用中可能还需要考虑错误处理、数据过滤、排序等功能。通过这种方式,EXTJS能够帮助开发者高效地构建功能丰富的数据驱动的Web应用。
在IT行业中,ExtJS是一个广泛使用的JavaScript库,用于构建富客户端的Web应用程序。它提供了丰富的组件库,包括数据网格(Grid)等,使得开发者能够创建交互性极强的数据展示和管理界面。这篇“ExtJS笔记——Grid...
为了解决这个问题,EXTJS提供了一个名为“树型分页”(Tree Paging)的特性。本文将深入探讨EXTJS树型分页组件的工作原理、实现方法及其实用价值。 1. 树型分页原理 树型分页不同于传统的表格分页,因为它需要处理...
从给定的文件信息来看,我们探讨的主题是“ExtJS 4.2 + Java”的结合应用,这在企业级Web应用程序开发中是一个经典的组合。ExtJS是一个强大的JavaScript库,用于构建复杂的用户界面,而Java则作为后端服务的提供者。...
以下是对EXTJS分页后台处理的详细说明: 首先,`Store`对象是EXTJS中用于存储数据的核心组件。在你的代码中,`Store`被创建并配置了`baseParams`、`JsonReader`和`HttpProxy`。 1. `baseParams`: 这个属性用于传递...
ExtJS 分页是一种在Web应用中管理大量数据的常见技术,尤其在与Spring MVC框架集成时,能够提供高效的数据展示和交互。在ExtJS中,分页通常与数据网格(Grid)组件一起使用,用于显示从后端服务(如SQL Server 2008...
EXTJS 4.2 是一个流行的JavaScript框架,用于构建富客户端Web应用程序。在这个场景中,我们关注的是在EXTJS的Combobox(下拉框)组件中实现分页和动态加载数据的功能。Combobox通常用于展示有限数量的选项,但在大...
本项目是一个使用EXTJS、Hibernate、Spring和Java Direct技术栈开发的单页面应用程序(SPA),它提供了全面的企业级功能,如产品管理、库存控制以及用户和角色管理。下面将详细解析这些技术及其在该项目中的应用。 ...
ExtJS Grid 分页是Web应用中数据展示的重要组成部分,它允许用户高效地浏览大量数据而无需一次性加载所有记录。在本文中,我们将深入探讨ExtJS Grid的分页功能及其实现方式。 首先,ExtJS Grid是一种强大的...
通过上述步骤可以实现一个完整的分页功能,不仅能够提高用户体验,还能够有效提升应用程序的性能。开发者可以根据实际需求调整相关配置,如增加排序功能、支持异步加载等,从而更好地满足项目需求。
Spring MVC、MyBatis、Ehcache和ExtJS这四个技术组件都是开发者们在构建此类应用时常常使用的工具。让我们详细了解一下这些技术以及它们如何协同工作。 首先,Spring MVC是Spring框架的一个模块,专门用于构建Web...
在IT领域,ExtJS是一个广泛使用的JavaScript库,用于构建富客户端Web应用程序。它提供了一整套组件,包括表格、树形视图、图表等,帮助开发者创建交互式、功能丰富的用户界面。本篇将深入探讨ExtJS中的"Chekboxtree...
Java和ExtJS是两种在开发Web应用程序时广泛使用的技术。Java是一种多平台的、面向对象的编程语言,常用于后端服务器开发,提供强大的数据处理和业务逻辑支持。而ExtJS是一个JavaScript库,专用于构建富客户端应用,...
1. **Struts2**: 是一个基于Java的开源Web应用框架,它继承了Struts1的优点并引入了更多强大的特性,如拦截器、动态方法调用等。 2. **JSON (JavaScript Object Notation)**: 是一种轻量级的数据交换格式,易于人...
在这个"ext分页客户端demo Java js"的示例中,我们将探讨EXTJS如何实现客户端分页,以及如何与后端(如Java)进行数据交互,而无需在服务器端编写额外的Java代码。 EXTJS中的分页组件主要由Ext.grid.Panel和Ext....
《EXTJS+Java+MySQL通用后台管理:构建高效B/S架构应用系统》 EXTJS,全称为Ext JavaScript Library,是一款强大的前端JavaScript框架,专为构建富客户端应用而设计。其强大的组件模型、丰富的UI控件以及对数据绑定...