在 Combobox Extjs 4 中从数组和 bindStore 创建存储数据

Posted

技术标签:

【中文标题】在 Combobox Extjs 4 中从数组和 bindStore 创建存储数据【英文标题】:Create store data from array and bindStore in Combobox Extjs 4 【发布时间】:2014-11-10 01:16:41 【问题描述】:

我在使用 ArrayStore 动态填充组合框时遇到问题。

控制器中: 我有一个 StatusArray : ["Active", "Inactive", "Closed"] 我创建了一个如下所示的商店

var test = Ext.create('Ext.data.ArrayStore', 
            fields: [
                 name: "Status" 
            ],
            data: StatusArray
        );

然后我用这个商店填充组合框

Ext.ComponentQuery.query('#statusId')[0].bindStore(test);

它可以工作,但组合框只获取 StatusArray 中每个值的第一个字母,例如“A”、“I”、“C”。

我的表单查看与组合框:

items: [
        xtype: 'form', itemId: 'eventForm', bodyPadding: 10, anchor: '100%',
        items: [ xtype: 'combobox', anchor: '100%', displayField: 'Status', name: 'Status', valueField: 'Status', typeAhead: true, queryMode: 'local', triggerAction: 'all', fieldLabel: ' Status ', emptyText: 'Select Status', tooltip: 'Select Status', selectOnFocus: true, itemId: 'statusId' ,
             xtype: 'button', itemId: 'submitButton', text: 'Submit' 
        ]
    ],

谁能帮我解决这个问题?谢谢!!!

【问题讨论】:

【参考方案1】:

数据对象(statusarray)应该是模型实例的数组或数据对象的形式来本地加载...

使用

StatusArray : [["Active"], ["Inactive"], ["Closed"]]

StatusArray : ["Active", "Inactive", "Closed"]

您可以查看ArrayStore here的示例代码

【讨论】:

谢谢您的回答!!!但是我怎样才能将 [ ] 放在 StatusArray 之外? StatusArray 是动态创建的,我不能像你写的那样去编辑它。

以上是关于在 Combobox Extjs 4 中从数组和 bindStore 创建存储数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 JSON 填充 ComboBox ExtJS 4.2

Extjs 4+ 中的 combobox 的级联

ComboBox.store.loadData 无法加载单项数组

存储加载后 extjs 4.0.7 中 Combobox 中的小错误

如何解决 ExtJS 4.1 Combobox pageSize 的 bug?

在 EXTJS3 的 ComboBox 中的选项之间添加分隔线