我使用Grid和PadingToolbar分页不成功,是哪里不正确??

Rooock 2008-10-08

我打算用GridPanel和PagingToolbar实现一个可以分页的表格.
数据是由后台传出来的.JSON格式大概如下:

{
	"count":44,	//	计算出来的记录数
	"results":	
	[
		...	//	省略		
	],
	"id":"id"	//	这个是做什么的,哪位能帮我解释下,我没用上.
}




我的Grid布局大概如下:

//	数据存储器
var store = new Ext.data.Store
({
     //	发送的请求
     proxy:	new Ext.data.HttpProxy({url:'myProject/myModule/query.action'}),	
    reader: new Ext.data.JsonReader		//	JSON解析器
	(
		{           
			totalProperty: 'count',		//	对应JSON数据的count.即记录数
   		        root: 'results',		//	对应JSON的记录	
    		        id: "id"  			//	这个用途是干啥的还不清楚
    	}, 
		[
			...	//	省略
		]
	) 
});


//	选择框
var sm = new Ext.grid.CheckboxSelectionModel();


//	表格
var myGrid = new Ext.grid.GridPanel
({
	//	获得数据
    store: store,

    cm: new Ext.grid.ColumnModel
    ([
    	new Ext.grid.RowNumberer(),
        sm,
        //	列结构 省略
	...		
    ]),
    
    sm: sm,

    viewConfig: 
    {
        forceFit:true
    },

//	分页	指定了每页的记录数为20条, 数据的来源是store
   bbar: new Ext.PagingToolbar
        ({id: 'pagingToolbar', pageSize: 20, store: store, displayInfo: true});
});



这样做了之后,查询到的数据能够正确显示到Grid中.
但是没有分页效果.
我的pageSize是20条数据,总数据有44条.这样算来,需要分三页.

在实际效果上看,这个padingToolbar知道要分三页,有显示: page: n of 3 (n = {1, 2, 3})
  
但是无论切换到哪一页,都是一面显示所有的44条数据.

我原以为,Ext Grid的分页是在客户端由它自己去实现的.如果是这样的话,我是哪里有问题??

 

sd3208464 2008-10-09
需要start 和limit
379548695 2008-10-09
去掉 id: "id"    
Rooock 2008-10-09
补充一下.load有start和limit.
我觉得是json处理的不对.
grid只会显示数据,但是不会对数据进行筛选.
分页的记录是要自己通过程序写出来的吧...
gq913 2008-11-07
这个问题最简单的笨方法就是根据start和limit,在对List进行分割(subList(int fromIndex, int toIndex) )。最后在转换为json数据
tiangangc 2008-11-10
你传入的数据是44条,当然显示44条记录了,分页是在后台完成的,extjs是负责前端显示,你传入多少条记录,就显示多少条记录
Global site tag (gtag.js) - Google Analytics