Как добавить пейджинг в сетку extjs 4? - PullRequest
3 голосов
/ 11 сентября 2011

У меня есть такой магазин, который я использовал для сетки extjs

Ext.create('Ext.data.Store', {
    autoLoad : true,
    fields   : [
        {name: 'item_code', mapping: 'item_code', type: 'string'},
        {name: 'quantity', mapping: 'quantity', type: 'string'},
        {name: 'description', mapping: 'description', type: 'string'},
        {name: 'selling_price', mapping: 'selling_price', type: 'string'},
        {name: 'discount', mapping: 'discount', type: 'string'}
    ],
    storeId  : 'available_products',
    proxy    : {
        type            : 'ajax',
        actionMethods   : 'POST',
        url             : 'http://192.168.1.6/transactions/distribution_store',
        reader: {
            type: 'json',
            root: 'data'
        }
    }
});

Я хочу добавить пейджинг в сетку, но я хочу, чтобы это было так

сначала загрузите все данныес json и подкачкой этих результатов на стороне клиента без отправки запросов к серверу.

возможно ли это?как это сделать?

С уважением

1 Ответ

4 голосов
/ 11 сентября 2011

Для загрузки всех данных используйте

var myData = [];
Ext.Ajax.request({
    url: 'http://192.168.1.6/transactions/distribution_store',
    method: 'POST',
    success: function(response){
        myData = Ext.decode(response.responseText);
    }
});

Когда все данные загружены, вы можете использовать directFn config для эмуляции функциональности подкачки. Проверьте мой ответ здесь для получения дополнительной информации. И проверьте это демо тоже.

UPDATE

решение не работает для ext js 4.1.1. Можете ли вы привести пример для этой версии?

Также не работает для ExtJS 4.2.

directFn решение всегда казалось мне взломом. Начиная с 4.0.7 нет необходимости использовать directFn. Вместо этого используйте Ext.ux.data.PagingMemoryProxy . Демо-версия здесь

...