我目前正在使用Extjs构建一个应用程序(我是这个框架的新手)。在这个框架中,我遵循了MVC架构。目前我正在开发一个ajax调用来定义一个表格,该表格显示来自Json File的记录。在我的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文件的所有记录,并在其下面提供了pagingtoolbar。如果有人能帮助我理解这一点,那将更加值得赞赏
答案 0 :(得分: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;
}
重要的是正确处理Page Params。 我的英语很差,但我真的想帮助你。