【问题标题】:Trying to get a basic combo to work in ExtJS试图让一个基本的组合在 ExtJS 中工作
【发布时间】:2014-09-02 13:21:08
【问题描述】:

我想在 ExtJS 中使用一个非常简单的组合框,但我很惊讶地发现我似乎必须通过使用商店来使事情复杂化。

我有一个数据数组:

var states = [
    {"name":"Alabama"},
    {"name":"Alaska"}
]

我创建链接到“名称”字段的模型“状态”,然后创建链接到模型和数据数组的商店。

Ext.regModel('State', {
    fields: [
        {type: 'string', name: 'name'}
    ]
});
var store1 = Ext.create('Ext.data.Store', {
    model: 'State',
    data: states 
});

现在我创建我的组合,作为面板中的一个字段:

var f = Ext.create('Ext.form.Panel', {
    items: [
       {
            fieldLabel: 'hi there',
            xtype: 'combobox',
            name: 'XXXX',
            store:store1,
            maxLength: 64,
            allowBlank: false
        }
    ]
})

没有什么告诉我我做错了什么,但每当我尝试打开组合时,我都会收到 'Uncaught TypeError: Cannot read property 'indexOf' of undefined '

我的小提琴在这里:

http://jsfiddle.net/sr61tpmd/1/

另一个问题是,我可以在 ExtjS 中呈现组合框的最简单方法是什么?

【问题讨论】:

  • 设置queryMode: 'local'
  • 我收到 Uncaught Ext.data.proxy.Server.buildUrl():您正在使用 ServerProxy,但没有为其提供 url。

标签: extjs extjs4


【解决方案1】:

只要你只想要一个与显示的值相同的组合框,完全可以将存储定义为数组。

xtype:'combo',
store:['Alabama','Arkansas',...]

如果您显示的文本与值不同,则需要一个真正的 extjs 存储。您可以在 ext 文档中看到一个工作示例(实际上也使用美国州):http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.form.field.ComboBox

【讨论】:

  • 我知道有一些简单的选择 ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-11
  • 1970-01-01
  • 1970-01-01
  • 2015-04-26
  • 1970-01-01
  • 1970-01-01
  • 2019-04-23
相关资源
最近更新 更多