yellowoneone
2009-09-11 11:12
浏览 251

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能解析出来吗?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • sno2wolf 2009-09-13 21:08
    已采纳

    要想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

    点赞 评论
  • iteye_10013 2009-09-11 11:15

    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个扩展都可以在官方找到

    点赞 评论
  • iteye_10013 2009-09-11 11:18

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

    这句刚才说的有歧义的.

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

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

    所以换为jsonstore是可以的.

    点赞 评论
  • sno2wolf 2009-09-19 22:53

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

    点赞 评论

相关推荐 更多相似问题