将组合框上的数组存储从4.07升级到4.1

时间:2012-05-10 16:26:04

标签: extjs4.1

以下配置适用于4.07但不适用4.1。

在4.1上我可以看到我的组合有3个项目。它只是没有读取displayField和valueField。

我正在使用mvc架构。

在我看来

{
xtype: 'combobox',
id: 'ProofRequired',
name: 'ProofRequired',
fieldLabel: 'Proof Required',
displayField: 'Name',
store: 'ProofRequired',
triggerAction: 'all',
queryMode: 'local',
valueField: 'Id'
},

在我的app.js

stores: [ 'VarnishType'],

和我的商店

Ext.define('Mis.store.ProofRequired', {    extend: 'Ext.data.Store',


    constructor: function(cfg) {
        var me = this;
        cfg = cfg || {};
        me.callParent([Ext.apply({
            autoLoad: true,
            storeId: 'ProofRequired',
            clearOnPageLoad: false,
            data: [
                {
                    Id: '1',
                    Name: 'Digital'
                },
                {
                    Id : '2',
                    Name : 'PDF'
                },
                {
                    Id : '3',
                    Name : 'Other'
                }
            ],
            proxy: {
                type: 'ajax',
                reader: {
                    type: 'array'
                }
            },
            fields: [
                {
                    Id: 'Id',
                    Name: 'Name'
                }
            ]
        }, cfg)]);
    }
});

1 个答案:

答案 0 :(得分:0)

以下对我有用。我百分百肯定为什么。我相信我需要在字段名称周围加上引号。

Ext.define('Mis.store.ProofRequired', {
extend: 'Ext.data.Store',

constructor: function(cfg) {
    var me = this;
    cfg = cfg || {};
    me.callParent([Ext.apply({
        autoLoad: true,
        storeId: 'ProofRequired',
        clearOnPageLoad: false,
        fields: ['Id', 'Name'],
        data : [
            {"Id":"1", "Name":"Digital"},
            {"Id":"2", "Name":"PDF"},
            {"Id":"3", "Name":"Other"}
        ],
        proxy: {
            type: 'ajax',
            reader: {
                type: 'array'
            }
        }
    }, cfg)]);
}

});