ExtJS4 - Grid Store pageSize - PullRequest
       4

ExtJS4 - Grid Store pageSize

4 голосов
/ 21 ноября 2011

Я пытаюсь ограничить размер страницы магазина до 1. У меня есть 10 элементов в сетке, и, хотя механизм разбиения на страницы корректно показывает 1 из 10, 2 из 10 и т. Д., Сетка по-прежнему отображает все 10 элементов. Я также попытался вернуть в json свойство total для 1, но это все равно не работает. Есть идеи?

Пример в документации тоже не очень полезен, так как показывает исходный код, но предварительный просмотр пуст.

        var photos = new Ext.data.Store({
            model: 'Photos',
            autoLoad: true,
            pageSize: 1
        });

        var photosGrid = Ext.create('Ext.grid.Panel', {
            id: 'PhotoGrid',
            store: photos,
            columns: [
                       { text: "Filename", width: 200, dataIndex: 'filename' }
                    ],
            dockedItems: [{
                xtype: 'pagingtoolbar',
                store: photos,
                dock: 'bottom',
                displayInfo: true
            }],
            region: 'center',
            border: 0,
            overCls: 'row-pointer'
        });

Ответы [ 2 ]

1 голос
/ 21 ноября 2011

Привет, хорошо, ваша проблема в том, что вы, вероятно, возвращаете все 10 элементов в вашем json. Пейджинг должен быть реализован самостоятельно, все, что делает пейджинг, - это вызов нагрузки в хранилище с конкретными параметрами, такими как ограничение страницы.и индекс начала страницы.Вы должны использовать эти параметры на сервере, чтобы отправлять по одному элементу за раз.Chers mate.

РЕДАКТИРОВАТЬ

//this is the model we will be using in the store
Ext.define('Page', {
    extend: 'Ext.data.Model',
    fields: [
        {name: 'id',    type: 'int'},
    ]
});

var data = null;
var store = null;
Ext.Ajax.request({
    url: 'someurl',
    success: function(result){
        data = Ext.decode(result.responseText);
        store = Ext.create('Ext.data.Store', {
            autoLoad: true,
            model: 'Page',
            pageSize: 1,
            data : data,
            proxy: {
                type: 'memory',
                reader: {
                  type: 'json',
                  root: 'pages'//this has to be as the root from your json
                }
            }
        }); 
    }
});
0 голосов
/ 21 ноября 2011

Это проблема запроса в вашем скрипте форматирования json. Когда вы используете extjs с pageSize, он отправляет запросы с параметрами (page & limit, я помню). В вашем серверном скрипте вы должны проверить, существуют ли они, и, если так, измените свой запрос, добавив предложение limit (или эквивалент в других базах данных).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...