出处:http://www.cnblogs.com/mylem/archive/2010/11/05/1870270.html
下面以一个实例,简单说一下这个控件的使用方法:
这个例子以服务器向客户端传递的数据为json格式的方式来说明,这也是绝大多数应用中所使用的方法,
一个分页应用中一般需要几个参数:
pageSize:一页中显示多少条记录;
curPage:当前显示第几页
totalCount:总计有多少条记录,可用来计算总页数
下面我们首先定义一下客户端的store:
var g_store = new Ext.data.JsonStore({
// jsonReader configs
autoDestroy: true, //仅当绑定到多个组件时,才不用此句
autoLoad:false, //我们不使用自动调入的方法
root: 'rows', //这个指出服务器返回的json对象中用于显示记录的对象名,下面会看到
idProperty: 'Ids', //记录的ID属性
fields:'....' //自定义一下吧
});
下面再定义一个表格,把PagingToolbar放到它的下面:
g_grid = new Ext.grid.GridPanel({
renderTo:'editor-grid', //DOM 控件
store: g_store,
view: new Ext.grid.GridView({
autoFill:true
}),
// paging bar on the bottom
bbar: new Ext.PagingToolbar({
pageSize: 5, //指出每页显示的记录数
store: g_store,//与grid是相同的store
displayInfo: true,
displayMsg: '当前显示记录: {0} - {1} 共计: {2}',
emptyMsg: "没有记录可以显示"
})
});
上面我们注意到g_grid与PagingToolbar的store是相同的,这样我们就可以通过PagingToolbar控制store的同时也就控制了grid的显示了。
其实PagingToolbar和grid本来没什么关系,它们都是通过store联系在一起的,另外我们把PagingToolbar放到的grid里面,当然不放在grid里面也行。
下面来执行一下客户端的store的调入数据的操作:
var proxy=new Ext.data.HttpProxy({
url:'http://www.xxx.com/sss.aspx'
});
g_store.proxy=proxy;
g_store.load({params:{start:0,limit:5}});//分页参数
上面的一段代码是使 g_store 使用ajax的方式向服务器端请求数据,load的参数指出了第一次读取数据时,数据是如何分页 的,start:指出这次请求的记录的起始行号,0表示从第一行开始,limit:表示每页显示的记录数,也就是说,如果显示记录后,用户点击了下一页 时,将自动向服务器提交参数:start:5,limit:5,再点击下一页时,则向服务器提交参数:start:10,limit:5。服务器端就可以 根据这些参数来向客户端返回相应的记录了。
好了,现在我们来看看服务器端的一些处理过程:
int iStart = Convert.ToInt32(Request["start"].ToString());
int iLimit = Convert.ToInt32(Request["limit"].ToString());
通过这两句我们就可以在服务器端的程序中取得客户端提交过来的分页参数了,然后根据这些参数从数据库中读取数据,同时还要再读出记录的总数来,然后组装json格式的字符串,并返回给客户端。
服务器端具体的分页程序,我只是简单的示意一下:
假设传入的分页参数如下:
@iPageSize int //为每页显示数
@iPage int
DECLARE @iStart int
SET @iStart=@iPageSize*(@iPage-1)
Declare @sSql nvarchar(max);
SET @sSql='SELECT TOP '+Cast(@iPageSize as nvarchar)+' iNum,sName FROM tblProduct
WHERE iNum NOT IN(SELECT TOP '+CAST(@iStart AS nvarchar)+' iNum From tblProduct)'
EXEC (@sSql)
以上代码仅示意,具体分页代码要根据自己的业务需要来写。下面我将服务器端返回给客户端的json格式说明一下:
{success:true,total:88,rows:[{ID:1,Name:"Jhon"},{ID:2,Name:"Brown"},{xxx},{yyy},{zzz}]}
上面的json对象中:success:true,说明返回的ajax请求成功,total:88,表示一共有88条记录,rows:....,表示返回的具体记录内容。
success,total,这两个关键字不要修改,否则要在store创建时的JsonReader中声明,如:
"totalProperty " : "results"
"successProperty " : "succ" ,
rows这个关键字是在g_store的声明中的root标明的。
好了,PagingToolbar的使用中的关键技术就基本介绍完了,还有一些其他的属性,多看看API文档也就OK了。
分享到:
相关推荐
在EXTJS中,PagingToolbar 是一个非常实用的组件,用于在大数据集上实现分页显示,提升用户体验。然而,在实际使用过程中,我们可能会遇到一些问题,比如在点击“下一页”按钮时,加载的数据与预设的查询条件不符。...
EXTJS分页通常与数据访问对象(DAO)和动作控制器(Action)结合使用,形成一个完整的数据获取和展示流程。下面将详细阐述EXTJS分页的核心概念、实现方法以及DAO和Action在其中的作用。 一、EXTJS分页核心概念 1. ...
TreeStore是ExtJS中用于表示树形数据结构的组件,它可以与各种UI组件(如TreePanel)配合使用,展示层级化的数据。在这个主题中,我们将深入探讨如何结合TreeStore和pagingToolbar实现分页功能。 在传统的表格数据...
在 ExtJS3.3基础上开发的. 低一点的版本应该也能用. 没有去测试. 参考: Ext.PagingToolbar.js 如有BUG还请各位提出或留言. 附件中有图片, 一看就知道. 用法: var grid = new Ext.grid.GridPanel({ bbar: new Ext....
在EXTJS3中,`Ext.PagingToolbar()` 是一个非常重要的组件,用于在大量数据的网格或视图中实现分页功能。这个组件允许用户轻松地浏览和操作大量的记录,而不需要一次性加载所有数据,从而提高了应用程序的性能和用户...
PagingToolbar通常与Ext JS的数据存储(如Store)和数据网格(如GridPanel)一起使用,以加载和展示数据的特定部分,而无需一次性加载所有数据,从而提高应用程序的性能。 在标准的Ext JS PagingToolbar中,每页...
在 ExtJS3.3基础上开发的. 低一点的版本应该也能用. 没有去测试. 参考: Ext.PagingToolbar.js 因为我开发测试完这个分页工具后, 电脑上显示刚好是15:00, 所以取名: PM3PagingToolbar 如有BUG还请各位提出或留言. ...
在本篇文章中,我们将深入探讨如何使用ExtJS与Gride进行交互,创建功能丰富的数据网格。 首先,理解ExtJS Grid的基本结构至关重要。Grid由以下几个主要部分组成: 1. **Store**: 存储数据的容器,可以是本地数据...
在Extjs中使用`pagingtoolbar`组件进行分页操作时,通常情况下,当我们点击“下一页”,`store`会自动加载数据。但是,默认情况下`store`只传递了`start`和`limit`两个参数,这意味着如果之前进行了某种查询(例如...
在本文中,我们将探讨如何使用ExtJS框架结合Java实现数据库数据的分页查询。ExtJS是一个强大的JavaScript库,常用于构建桌面级的Web应用程序,而Java则是一种广泛使用的后端开发语言,常用于处理服务器端逻辑。在这...
本文档将从EXTJS的基本使用到高级应用进行讲解,涵盖EXTJS的核心概念、控件、工具和实践经验。 一、EXTJS基础知识 EXTJS是基于JavaScript的框架,用于构建RIA应用程序。它提供了一个灵活的架构,能够快速构建复杂...
"Extjs树分页组件扩展"就是为了解决这一问题而设计的,它通过扩展TreeLoader和PagingToolbar,实现了在树形组件中进行分页加载的效果。 **TreeLoader的扩展** TreeLoader是ExtJS中负责异步加载树节点的类。在原生...
在ExtJS 3.x版本中,PagingStore是与GridPanel结合使用,使得用户可以逐页加载和浏览数据,而无需一次性加载所有记录,从而减轻服务器压力。 PagingStore的工作原理: 1. **连接数据源**:PagingStore通常与远程...
分页组件在EXTJS中通常由PagingToolbar提供,这是一个放置在Grid或TreePanel底部的工具栏,包含了导航按钮和页码显示。在Combobox中实现分页,我们需要自定义Combobox的行为,使其能够与PagingToolbar协同工作。 `...
本总结例子将深入探讨EXTJS Grid的核心特性和使用方法,通过源代码分析,帮助开发者更好地理解和应用EXTJS Grid。 一、EXTJS Grid的基本结构 EXTJS Grid由多个部分组成,包括Store(数据存储)、Columns(列配置)...
EXTJS的Grid Panel支持动态分页和列排序,用户可以通过配置`Ext.grid.plugin.PagingToolbar`实现分页,通过设置`sortable`属性对列进行排序。 5. **权限与角色管理**:对于后台系统,权限控制必不可少。EXTJS可以...
EXTJS Grid是EXTJS库中的一个核心组件,用于创建数据密集型的表格视图,它在Web应用程序中常用于展示和操作大量...通过学习和实践这些资源,开发者能够熟练掌握EXTJS Grid的使用,构建出功能强大的数据展示和管理界面。
xtype: 'pagingtoolbar', store: myStore, // 绑定到相同的数据源 displayInfo: true // 显示当前页和总页数 }] }); ``` 数据源通常连接到一个远程服务器,通过Ajax请求获取数据。EXTJS的Store对象支持远程分页...
在ExtJS中,Grid的分页通常是通过`Ext.grid.Panel`的`pagingToolbar`配置实现的。`pagingToolbar`是一个包含导航按钮(如“上一页”、“下一页”)和当前页信息的工具栏,它与数据源(通常是`Ext.data.Store`)关联...
12. `paging` - `Ext.PagingToolbar`:分页工具栏,用于分页浏览大量数据。 13. `panel` - `Ext.Panel`:面板组件,通常用作容器,可以包含标题、边框、工具栏等。 14. `progress` - `Ext.ProgressBar`:进度条组件...