2011-05-23 3 views
0

hi J'ai fait une liste qui a un nom de produit et un prix la liste est un élément d'un panneau et le panneau a un dockeditem qui est une barre d'outils. Je veux la somme des prix dans la barre d'outils pour que les gens puissent voir le prix total.Somme valeur Sencha Touch

mon code:

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' 
      }] 
     }) 

Mon magasin:

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

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

], 
autoLoad: true 
}); 

Quelqu'un pourrait-il s'il vous plaît me dire comment faire cela parce que je ne sais pas

Répondre

0

Vous pouvez utiliser le magasin chaque fonction native pour vérifier tout le prix des enregistrements et calculer la somme de ceux-ci. Je vous poste un exemple simple qui vous montre comment faire cela:

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); 

       } 
      }] 
     }] 
    }); 
} 

}); Comme vous pouvez voir la fonction store.each itérer entre chaque enregistrement, de sorte que vous pouvez obtenir le champ "prijs" et le somme de votre variable "sum". Après cela, vous pouvez prendre la barre d'outils ancrée et définir la valeur de la somme comme son titre.

Espérons que cela aide.