2010-11-19 5 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

+0

Добавлен JSON. Спасибо, что посмотрели! –

ответ

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

Я добавил эти атрибуты, но следующая кнопка по-прежнему отключена. Есть ли какая-нибудь другая информация, которую я могу дать, которая поможет? –

+1

Проблема была исправлена, когда я переключился на магазин с помощью JsonReader, как вы предложили. Большое вам спасибо за помощь. :) –

+0

Я также сталкиваюсь с той же проблемой, но даже когда я использовал магазин с JsonReader, проблема не решена. Любая помощь приветствуется. –

Смежные вопросы