2010-11-19 50 views
1

我創建了一個具有分頁工具欄的基本網格。由於某些原因,當我在索引0加載時,即使文本顯示「顯示第1頁,共5頁」,「下一頁」按鈕也會被禁用。如果我在商店的加載參數中選擇大於0的任何東西,它允許我前後翻頁,但它不能正確顯示最大頁數,如果我回到第一頁,則下一個按鈕是一次再次被禁用。ExtJS Grid Paging:下一個按鈕被禁用!

任何想法?

function getBugGrid(activityPanelWrapper){ 
    var pageSize = 5; 
    var bugStore = new Ext.data.JsonStore({ 
              reader: new Ext.data.JsonReader({ 
                      totalProperty: 'total_count' 
                      }), 
              autoLoad: {params:{start: 0, limit: pageSize}}, 
              autoDestroy: true, 
              url: '/bugs/fetch', 
              idProperty: 'id', 
              region: 'center', 
              root: 'data', 
              storeId: 'bugStore', 
              fields: [...] 
             }); 

    var columnModel = new Ext.grid.ColumnModel({ 
               defaults: { 
               width: 120, 
               sortable: true 
               }, 
               columns: [...] 
              }); 

    return new Ext.grid.GridPanel({ 
             region: 'center', 
             store: bugStore, 
             colModel: columnModel, 
             trackMouseOver:false, 
             loadMask: true, 
             sm: new Ext.grid.RowSelectionModel({singleSelect:true}), 
             listeners: { 
             rowclick: { 
              fn: function(grid, rowIndex, event) { 
              var bug_id = grid.store.getAt(rowIndex).id; 
              Ext.getCmp('activity-panel').load(activity_lines_path(bug_id)); 
              } 
             } 
             }, 
             bbar: new Ext.PagingToolbar({ 
                    pageSize: pageSize, 
                    store: bugStore, 
                    displayInfo: true, 
                    displayMsg: 'Displaying topics {0} - {1} of {2}', 
                    emptyMsg: "No topics to display" 
                    }) 
            }); 
} 

JSON響應:

{"data":[{ bug 1 },{ bug 2 },{ bug 3 },{ bug 4 },{ bug 5 }], 
"errors":{}, 
"total_count":25} 
+0

您商店發回的JSON是什麼樣的? – Jason 2010-11-19 15:21:42

+0

添加了JSON。謝謝參觀! – 2010-11-19 15:32:52

回答

2

你是不是讀TotalProperty在JsonReader ...

您需要將這個配置添加到您的自動加載...

var bugStore = new Ext.data.JsonStore({ 
    autoDestroy: true, 
    url: '/bugs/fetch', 
    idProperty: 'id', 
    root: 'data', 
    storeId: 'bugStore', 
    fields: [ ... ] 
    autoLoad: {params:{start: 0, limit: pagesize}} 
}); 

您也可以在JSON商店中定義JSON閱讀器:

var myStore = new Ext.data.Store({ 
reader: new Ext.data.JsonReader({ 
    totalProperty: 'total_count', 
    ... 
}), 
... 

});

+0

我添加了這些屬性,但下一個按鈕仍處於禁用狀態。有什麼其他信息可以幫助我嗎? – 2010-11-19 16:35:11

+1

正如您所建議的那樣,當我使用JsonReader切換到Store時,問題得到解決。非常感謝您的幫助。 :) – 2010-11-19 18:30:34

+0

我也面臨同樣的問題,但即使當我用JsonReader存儲問題沒有解決..任何幫助表示讚賞。 – 2015-01-08 09:26:34