如何循环存储并计算sencha上的字段数据

时间:2016-02-25 09:46:42

标签: javascript mysql extjs

我在sencha有一个商店,代码如下

Ext.define('Qvidi.store.MyJsonStore', {
extend: 'Ext.data.Store',

requires: [
    'Qvidi.model.Qvidi',
    'Ext.data.proxy.Ajax',
    'Ext.data.reader.Json'
],

constructor: function(cfg) {
    var me = this;
    cfg = cfg || {};
    me.callParent([Ext.apply({
        storeId: 'MyJsonStore',
        model: 'Qvidi.model.Qvidi',
        proxy: {
            type: 'ajax',
            extraParams: {
                class: 'Qvidi',
                method: 'getData'
            },
            url: 'server/index.php',
            reader: {
                type: 'json',
                rootProperty: 'results'
            }
        }
    }, cfg)]);
  }
});

我需要遍历商店并计算一个名为gender的字段来自mysql数据库,数据库被加载并检索数据,但是我需要遍历数据来计算数据库中有多少男性和女性。因此,男性被定义为数据库中的一个,女性被定义为2.所有这些数据都被加载到商店中。

我只需要知道如何区分男性和女性。我知道你必须在sencha中使用foreach函数。

任何帮助表示赞赏

2 个答案:

答案 0 :(得分:1)

加载后编写代码存储

yourStore.queryBy(function(record,id){ return (record.get('Your Field name') === "male/female"); }).getCount(); // For male/female

答案 1 :(得分:1)

你可以帮助filter()& getCount()商店的功能来实现这个目标:

var store = Ext.getStore('MyJsonStore');
store.filter('gender',1);       //filtering all male records
var maleCount = store.getCount();    //getting the count
store.clearFilter();
store.filter('gender',2);           //filtering all female records
var femaleCount=store.getCount();
store.clearFilter();
相关问题