Не работает pageSize в гриде

Рейтинг: 2Ответов: 1Опубликовано: 18.11.2014

Store

var time = Ext.Date.add(new Date(), Ext.Date.MONTH, -5).getTime();

Ext.define('test.store.event.EventsStore', {
    extend: 'Ext.data.Store',
    model: 'test.model.EventDetails',
    pageSize: 25,
    autoLoad: false,

    proxy: {
        type: 'ajax',
        jsonData: {},
        api: {
            read: '/spring/events/get_events/' + time + ''
        },
        reader: {
            type: 'json',
            root: 'data'
        }
    }
});

Окно с формой, гридом и пагинатором

Ext.define('test.view.mainmenu.EventsForm', {
    extend: 'Ext.window.Window',
    alias: 'widget.eventsform',

    title: 'События',
    layout: 'fit',
    width: 800,
    height: 400,
    autoShow: true,
    modal: true,

    initComponent: function () {
        this.items = {
            xtype: 'grid',
            store: 'test.store.event.EventsStore',
            border: false,
            columns: [
                {xtype:'rownumberer', header: '№', sortable: true, flex: 0.3},
                {header: 'id', dataIndex: 'eventId', flex: 0},
                {header: 'Наименование', dataIndex: 'eventName', flex: 1},
                {header: 'Дата/время', dataIndex: 'eventDate', type: 'date', flex: 1},
                {header: 'Тип', dataIndex: 'eventType', flex: 1}],

            dockedItems: [{
                xtype: 'pagingtoolbar',
                id: 'padgingtoolbarEvents',
                store: 'test.store.event.EventsStore',
                dock: 'bottom',
                displayInfo: true,
                beforePageText: 'Страница',
                afterPageText: 'из {0}',
                displayMsg: 'События {0} - {1} из {2}'
            }]
        };

        this.buttons = [
            {
                text: 'Ок',
                scope: this,
                handler: this.close
            }
        ];
        this.callParent(arguments);
    }
});

И функция загрузки store и вызова моей формы

eventsForm: function() {
    this.getStore('NomadClient.store.event.EventsStore').load({params:{start:0,limit:24}});

    console.info('events store is load');

    Ext.widget('eventsform');
    console.log('Open events window ...');
},

Я указал в pageSize = 25 и при загрузке стора указал параметры

load({params:{start:0,limit:24}})

При открытии формы в таблицу грузятся все итемы. Почему не срабатывает pageSize и параметры?

Ответы

▲ 3Принят

Попробуйте в хранилище указать autoLoad: true, чтобы без функции подгружать данные. Также интересно, а на стороне сервера вы правильно отдаете данные? Также можно проверить правильность запроса.

Посмотрите пример постраничного грида на extjs - http://metanit.com/web/extjs/13.6.php, попробуйте сделать наподобие.