如何创建一个通用的 ExtJS 组合框存储?

Posted

技术标签:

【中文标题】如何创建一个通用的 ExtJS 组合框存储?【英文标题】:How to create a generic ExtJS combo box store? 【发布时间】:2013-06-24 15:17:34 【问题描述】:

我想为组合框创建一个通用的 Extjs 存储。

商店应该能够:

    获取网址 使用代理从服务器读取数据 应该适用于任何型号

我怎样才能做到这一点?

这是我要开始的:

Ext.create('Ext.data.Store', 
    proxy: 
        type: 'ajax',
        url: rawURL,
        reader: 
            type: 'json'
        
    
)

使用ExtJS 4.1

【问题讨论】:

【参考方案1】:
function getGenericStore(storeURL, valField, dispField) 
    var modelName = 'Model' + me.id;
    var model = Ext.define(modelName, 
        extend: 'Ext.data.Model',
        fields: [
            name: valField, type: 'string',
            name: dispField, type: 'string'
        ]
    );    
    return Ext.create('Ext.data.Store', 
        proxy: 
            type: 'ajax',
            model: model,
            url: storeURL,
            reader: 
                type: 'json',
                read: function(response) 
                    var json = Ext.decode(response.responseText);
                    var records = [];
                    Ext.each(json, function(item) 
                        var record = Ext.create(modelName);
                        record.set(val, item[val]);
                        record.set(display, item[display]);
                        records.push(record);
                    );

                    return 
                        success: true,
                        total: json.length,
                        count: records.length,
                        loaded: true,
                        records: records
                    ;
                
            
        
    );

【讨论】:

以上是关于如何创建一个通用的 ExtJS 组合框存储?的主要内容,如果未能解决你的问题,请参考以下文章

EXTJS:如何在组合框上自动完成查询后从数据存储中清除“查询”参数

加载后,Extjs 在组合框存储中添加选项

Extjs - 如何填充组合框形成一个单一的商店?

ExtJS 4.1:如何在组合框中设置预选项目?

如何让 extjs 组合框像普通的 html 选择框一样工作?

如何在具有嵌套数据的网格中设置组合框值? Extjs 4.2 Mvc