Extjs неправильно разбивает на страницы - PullRequest
1 голос
/ 05 февраля 2012

Я включил пейджинг в свой код ... но, похоже, мой пейджинг работает неправильно.Я пытаюсь отобразить 3 результата на страницу ... но он показывает все на одной странице, а когда вы нажимаете "Далее", он повторяет те же результаты.

Ext.require([
    'Ext.data.*',
    'Ext.grid.*'
]);

Ext.onReady(function(){
    Ext.define('Book',{
        extend: 'Ext.data.Model',
        fields: [
            // set up the fields mapping into the xml doc
            // The first needs mapping, the others are very basic
            {name: 'Author', mapping: 'ItemAttributes > Author'},
            'Title', 'Manufacturer', 'ProductGroup'
        ]
    });

    // create the Data Store
    var store = Ext.create('Ext.data.Store', {
         pageSize: 3,                  
        model: 'Book',
        autoLoad: true,
        proxy: {
            // load using HTTP
            type: 'ajax',
            url: 'sheldon-2.xml',
            // the return will be XML, so lets set up a reader
            reader: {
                type: 'xml',
                // records will have an "Item" tag
                record: 'Item',
                idProperty: 'ASIN',
                totalRecords: '@total'
            }
        }
    });

    // create the grid
    var grid = Ext.create('Ext.grid.Panel', {
        store: store,
        columns: [
            {text: "Author", flex: 1, dataIndex: 'Author', sortable: true},
            {text: "Title", width: 180, dataIndex: 'Title', sortable: true},
            {text: "Manufacturer", width: 115, dataIndex: 'Manufacturer', sortable: true},
            {text: "Product Group", width: 100, dataIndex: 'ProductGroup', sortable: true}
        ],
        renderTo:'example-grid-group-v3',
        width: 540,
        height: 200,
        // paging bar on the bottom
        bbar: Ext.create('Ext.PagingToolbar', {
            store: store,
            displayInfo: true,
            displayMsg: 'Displaying topics {0} - {1} of {2}',
            emptyMsg: "No topics to display"

        })
    });
});

Ответы [ 2 ]

1 голос
/ 05 февраля 2012

Как это работает, вам нужна программа (PHP или ASPX или что-то подобное) на сервере, которая принимает информацию о пейджинге и отправляет данные в страницах.В вашем случае это статический XML-файл, который будет возвращен целиком по запросу.Я не уверен, что вы можете иметь все данные на стороне клиента и при этом ExtJS сделает пейджинг для вас.Возможно, вы захотите провести дополнительные исследования различных магазинов / прокси, чтобы выяснить, возможно ли это.Буферизованная прокрутка является еще одним вариантом для вас, если вы хотите принести все данные с сервера и отображать только те данные, которые отображаются в данный момент.

0 голосов
/ 05 февраля 2012

Пожалуйста, переместите размер страницы: 3 строка в Ext.PagingToolbar объект. Пейджинг обрабатывается на стороне сервера. Клиент отправляет на сторону сервера параметры, которые сервер должен интерпретировать, а затем ответить соответствующими данными. Кажется, sheldon-2.xml не поддерживает подкачку страниц и возвращает все записи. См. Пример в Ext.PagingToolbar документации.

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