2013-09-30 33 views
0

我目前正在使用Extjs構建應用程序(我是這個框架中的新成員)。在這個框架中,我遵循MVC架構。目前,我正在致力於定義一個表格網格,該網格顯示來自Json文件的記錄。在我的JSON文件我有100多個記錄,我呼籲我的商店的文件,該文件將是如下:如何在Extjs中調用Ajax調用時調用有限數量的數據?

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文件的記錄,並在其下面提供了分頁工具條。如果有人可以幫助我理解這將是更多的讚賞

回答

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; 
    } 

最重要的是要處理好頁PARAMS。 我的英語很差,但我真的很想幫助你。