0

我目前正在使用 Extjs 构建一个应用程序(我是这个框架的新手)。在这个框架中,我遵循了 MVC 架构。目前我正在处理一个 ajax 调用来定义一个表格网格,该表格显示来自 Json 文件的记录。在我的 json 文件中,我有超过 100 条记录,我正在调用我商店中的文件,如下所示:

Ext.define('AM.store.Users',{
extend: 'Ext.data.Store',
 model: 'AM.model.User',
 pageSize: 15,
 proxy: {
    type: 'ajax',
    api:{
        read: 'data/users.json',
        update: 'data/updateUsers.json', 
    },
        reader: {
        type: 'json',
        root: 'users',
        successProperty: 'success'
    }
 },
  autoLoad: true,

});

在我的视口上,我关注了 PagingToolbar

bbar : Ext.create('Ext.PagingToolbar', {
                    displayInfo : true,
                    store:'Users',
                    pageSize: 15,
                    displayMsg : '{0} - {1} of {2}',
                    emptyMsg : "No topics to display"
                })

在创建工具栏之前,我已将网格显示如下:(它使用 Xtype,因为我已经定义了 asss 别名)

xtype : 'userlist',

据我对 Extjs 的理解,这个网格应该一次显示 15 条记录,依此类推,但是这个网格一次加载 Json 文件的所有记录并在其下方提供分页工具栏。如果有人可以帮助我理解这一点,将不胜感激

4

1 回答 1

1

这是关于服务器端的问题。你的休息请求将是这样的。

http://your-host/XXXX-your-path/data/users.json?_dc=1380538796920&page=1&start=0&limit=15

这是一个 GET http 方法。您的服务器端必须正确处理它。我的代码你可以看一下,我认为它可能会有所帮助。(它是一个弹簧控制器)

@RequestMapping(value = "/admin/user/user.json", method = RequestMethod.GET)
@ResponseBody
    public LinkedHashMap<String, Object> listUsers(@RequestParam int page,@RequestParam int start,@RequestParam int limit) {
        Page pageItem = new Page(page,start,limit);
        List<User> plist = userDao.findAllByPage(pageItem);
        LinkedHashMap<String, Object> result = new LinkedHashMap<String, Object>();
        result.put("success", true);
        if (plist != null) {
            result.put("count", pageItem.getTotalCount());
            result.put("data", plist);
        } else {
            result.put("count", 0);
            result.put("data", plist);
        }
        return result;
    }

重要的是正确处理页面参数。我的英语很差,但我真的很想帮助你。

于 2013-09-30T11:08:32.323 回答