Страница по подразбиране на Extjs 4.1 pagingtoolbar

Искам да променя страницата по подразбиране на лентата с инструменти за страниране на 1 от 1 вместо 0 от 0 в случай на липса на запис. Освен това не използвам прокси на магазина, за да поискам записи, така че има ли някакъв начин да го направя, без да използвам прокси на магазина. Според моето изискване потребителят може да добавя редове ръчно към мрежата с лентата с инструменти за страниране, показваща страница 1 и когато редовете надхвърлят 10, се премества на 2-ра страница.


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