Загружать данные бесконечной сетки динамически - PullRequest
0 голосов
/ 18 февраля 2020

Я создал бесконечную сетку, используя Ext js 6.7. В котором записи загружаются из прокси магазина. Как это можно сделать динамически, используя Ajax вызовы?

Также необходимо отобразить количество загруженных записей и общее количество записей. Что-то вроде 5 of 100.

Я пробовал store.count(), но он возвращает общее количество, так как извлекать загруженные записи.

store.getData().getCount() возвращает количество, но оно не меняется после 8-9 итерации, кажется, данные переопределяются в буферизованном хранилище.

Ext.application({
    name : 'Fiddle',

    launch : function() {
        var store = Ext.create('Ext.data.BufferedStore', {

            fields: [
                'firstName', 'lastName',
                {
                    name: 'id',
                    type: 'int'
                }],

            leadingBufferZone: 5,
            pageSize: 1,
            remoteSort: true,
            autoLoad: false,
            proxy: {
                type: 'ajax',
                url: 'https://llbzr8dkzl.execute-api.us-east-1.amazonaws.com/production/user',
                reader: {
                    rootProperty: 'users',
                    totalProperty: 'totalCount'
                }
            }
        });

        Ext.create('Ext.grid.Panel', {

            renderTo:Ext.getBody(),
            id: 'myGrid',               
            title: 'Infinite Grid',
            width: 650,
            height: 500,
            store: store,
            scrollable: true,
            features: {
                ftype: 'grouping'
            },
            plugins: {
                gridfilters: true
            },

            columns: {
                defaults: {
                    filter: {
                        type: 'string'
                    }
                },
                items: [{
                    text: 'First Name',
                    width: 150,
                    dataIndex: 'firstName'
                }, {
                    text: 'Last Name',
                    width: 150,
                    dataIndex: 'lastName'
                }, {
                    text: 'Id',
                    width: 50,
                    dataIndex: 'id',
                    filter: {
                        type: 'number'
                    }
                } ]
            }
        });
    }
});

Любые подсказки или примеры, пожалуйста. Скрипка доступна здесь .

Ответы [ 2 ]

0 голосов
/ 26 февраля 2020

Вы можете обратиться к следующей скрипте, которая фактически использует прокси магазина ajax для реализации бесконечной прокрутки. https://fiddle.sencha.com/#view / editor & fiddle / 3402

Edit : Если вы хотите использовать метод Ext. Ajax .request по некоторым причинам, вы можете проверить ниже fiddle , используя метод Ajax .request, чтобы получить больше предметов - https://fiddle.sencha.com/#view / editor & fiddle / 341a

0 голосов
/ 18 февраля 2020

Вы можете получить количество записей примерно так:

store.getData().length

, но проблема в том, что ранее загруженные данные удалены (~ 250 элементов в моем примере)

Не понять, почему getCount возвращает общее количество

скрипка

...