Страница Extjs 4.1 pagingtoolbar по умолчанию

Я хочу изменить страницу панели инструментов разбивки на страницы по умолчанию на 1 из 1 вместо 0 из 0 в случае отсутствия записи. Кроме того, я не использую прокси-сервер хранилища для запроса каких-либо записей, поэтому есть ли способ сделать это без использования прокси-сервера хранилища. В соответствии с моим требованием пользователь может вручную добавлять строки в сетку с панелью инструментов разбиения на страницы, показывающей страницу 1, а когда строк превышает 10, она перемещается на вторую страницу.


person Waseem    schedule 23.04.2013    source источник
comment
Пожалуйста, разделите это на два отдельных вопроса. Один о отображении страниц, а другой о необходимости перехода на другую страницу при добавлении строк. Если свалить их все вместе, то возникает ощущение: вот мои требования, решите их за меня.   -  person Reimius    schedule 23.04.2013
comment
Вы должны предоставить пример кода для того, что вы делаете.   -  person Reimius    schedule 30.04.2013


Ответы (1)


В Ext можно перегрузить компонент, например Ext.toolbar.Paging, своей собственной версией. Просто укажите псевдоним в своем определении, и вы сможете использовать его так же, как «собственный элемент управления».

Чтобы убедиться, что этот подход сработает, я создал тестовый проект с простым источником данных и реализовал достаточное количество замещающих определений, чтобы увидеть, как метод «Ext.toolbar.Paging».getPagingItems запускается в моем пользовательском определении.

С этого момента вы можете заменить код внутри определения исходного метода, чтобы обеспечить пользовательский минимум в дополнение к возможности перегрузить метод «updateInfo», чтобы убедиться, что во время перезагрузки данных вы не прошиваете свои настройки.

В дополнение к этим двум вещам вы должны (с относительно небольшими усилиями) реализовать поверх элемента управления поддержку динамического изменения его значений на основе содержимого вашей сетки.

Если вы посмотрите на документацию для ux.data.PagingStore, вы сможете выяснить различия в использовании удаленного хранилища и того, что обслуживается с данными локально.

Надеюсь, это поможет вам.

Пример кода:

Ext.define(
    "Test.view.testview.TvPageBar",
    {
        extend: "Ext.toolbar.Paging",
        alias: "widget.tvpagebar",
        title: "Bob",
        strictInit: function () {
            "use strict";
            console.log("TvPageBar init");
        },
        getPagingItems: function () {
            console.log("getPagingItems", this);
            this.callParent(arguments);
        },
        initComponent: function () {
            this.strictInit();
            this.callParent(arguments);
        }
    }
);
person Thomas Ingham    schedule 01.05.2013