Сумма стоимости Сенча Touch - PullRequest
0 голосов
/ 23 мая 2011

Привет! Я создал список с названием продукта и ценой. Этот список является элементом панели, а панель имеет элемент закрепления, который является панелью инструментов. Мне нужна сумма цены внутри панели инструментов, чтобы люди могли видеть общую цену.

мой код:

new Ext.Panel({
        layout: 'fit',
        flex: 1,
        items: [
            new Ext.List({
            layout: 'fit',
            title: 'Winkelwagen',
            store: NestedListDemo.Winkelwagen_Store,
            flex: 1,
            itemTpl : '{title} €{prijs}'
        })],
        dockedItems: [{
            xtype: 'toolbar',
            dock: 'bottom',
            title: 'Totaal'
            }]
        })

Мой магазин:

NestedListDemo.Winkelwagen_Store = new Ext.data.JsonStore({

model: 'ListProductItem',
storeId: 'WinkelwagenStore',
data: [

],
autoLoad: true
});

Может ли кто-нибудь сказать мне, как это сделать, потому что я понятия не имею

1 Ответ

0 голосов
/ 27 мая 2011

Вы можете использовать встроенную функцию Store для каждой функции, чтобы проверить цену всех записей и рассчитать их сумму.Я публикую вам простой пример, который покажет вам, как это сделать:

Ext.setup({
onReady: function() {

    //Model registration
    Ext.regModel('Item', {
        fields: [
            {name: 'title', type: 'string'},
            {name: 'prijs', type: 'int'}
        ]
    });

    //Registration of the Store
    Ext.regStore('MyStore', {
        model: 'Item',
        data: [
            {title: 'Item 1', prijs: 100},
            {title: 'Item 2', prijs: 200},
            {title: 'Item 3', prijs: 700},
        ],
        autoLoad: true
    });

    //Definition of the main list
    var list = new Ext.List({
        itemTpl : '{title} - {prijs}',
        store: 'MyStore'
    });

    //Definition of the container panel
    var panel = new Ext.Panel({
        fullscreen: true,
        items: list,
        dockedItems: [{
            xtype: 'toolbar',
            itemId: 'mainToolbar',
            items: [{
                xtype: 'button',
                ui: 'action',
                text: 'Sum',
                handler: function(){

                    //Get the Store
                    var store = list.getStore();

                    //Declaring a sum variable
                    var sum = 0;

                    //Calculate the sum
                    store.each(function(item){
                        sum += item.get('prijs');
                    },this);

                    //Show the sum value
                    panel.getDockedComponent('mainToolbar').setTitle('The SUM is: ' + sum);

                }
            }]
        }]
    });
}

});

Как вы можете видеть, функция store.each выполняет итерацию между каждой записью, поэтому вы можете получитьполе "prijs" и суммируйте его с вашей переменной "sum".После этого вы можете взять закрепленную панель инструментов и установить значение суммы в качестве заголовка.

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

...