Ext grid分页的问题

因为我的数据形式是二维数据,所以我用simpleStore+ArrayReader可以很方便的显示出来,可是分页不好使,PagingToolbar 的页数总显示为NAN.
如果我把数据形式变成这样[code="java"]{
totalProperty :99,
items:[
[],[],[],[]
]
}[/code]
用jsonStore能读取出来吗?
[b]问题补充:[/b]
PagingToolbar是后台分页. ?
不太明白....
[b]问题补充:[/b]
atian25 (架构师)  我明白你的意思了,simpleStore就没办法设置totalProperty的值了吗?晕了.
[b]问题补充:[/b]
还有如果用jsonstore的话,那如果他的items是一个二维数组,直接用ArrayReader能解析出来吗?

要想grid能够分页,就不能使用Ext.data.SimpleStore。因为分页需要调用store的load()函数,而load函数与porxy有关。SimpleStore不但没有设置proxy,而且也没有重写load()函数,所以不能用SimpleStore。

再有,要明白,combo分页需要的数据是combo中的store提供的
var store = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({url: ''})//store提交的地址
reader: new Ext.data.JsonReader({
totalProperty: 'totalCount',

//得到共有多少条条记录,是从后台返回的
root: 'result'
//得到记录集合,需是json格式的,也是从后台返回的
}, DepartmentRecord)
});

var grid = new Ext.grid.GridPanel({
    title: '...',
    autoHeight: true,
    store: store,
    cm: cm,
    sm: sm,
    viewConfig: {  
        forceFit: true ////表格会自动延展每列的长度,使内容填满整个表格
    },
    bbar: new Ext.PagingToolbar({
        pageSize: 20,               //每页显示20条记录
        store: store,
        displayInfo: true,
        displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条',
        emptyMsg: "没有记录"
    })
});

在后台你只需要得到start,limit
String start = request.getParameter("start");
String limit = request.getParameter("limit");
然后将start,limit转换成int,再放到sql语句里就行了,你无需处理start,limit,因为grid,已帮你处理了
还有,返回的数据格式一定要正确,这样就行了
good luck to you

SimpleStore是前台数据
PagingToolbar是后台分页.

如果需要前台分页,用

[quote]
[b]//来自Class Ext.PagingToolbar api[/b]
Paging with Local Data

Paging can also be accomplished with local data using extensions:

Ext.ux.data.PagingStore
Paging Memory Proxy (examples/ux/PagingMemoryProxy.js)
[/quote]

这2个扩展都可以在官方找到

[quote]SimpleStore是前台数据 [/quote]

这句刚才说的有歧义的.

store如果你设置了url,才会是获取后台数据.

至于page的页数不对,是因为你没有设置totalProperty的原因.
而SimpleStore相当于ArrayReader+Store.
而totalProperty是JsonReader的属性.

所以换为jsonstore是可以的.

老兄,你怎么没动静了,若是还不行,我建议你买一本《深入浅出Ext Js》在这本书里的第12章有一个完整的EXT应用,里面就用到了grid 分页,很详细。