extjs组合框模型

时间:2012-06-18 16:52:05

标签: extjs combobox

有没有办法将商店绑定到ExtJS ComboBox而不创建js模型(ExtJS 4.1)?
要填充用户组合框,我总是需要先设置模型吗?我想为每个组合框跳过以下代码:

Ext.define('User',{extend:'Ext.data.Model',idProperty:'Id',fields:['Id','Name']});

4 个答案:

答案 0 :(得分:3)

你是对的,尼尔! 我已经找到了如何使用它:

var myStore = Ext.create('Ext.data.Store',{
    fields:['Id','Name'],
    data:[
        {Id:0,Name:'Yes'},
        {Id:1,Name:'No'},
        {Id:2,Name:'Maybe'}
    ]
});

var pnl = Ext.create('Ext.panel.Panel', {
    xtype: 'panel',
    title: 'My Panel',
    items: [{
        id:'cboField1'
        xtype:'combobox',
        fieldLabel:'My Field',
        displayField:'Name',
        valueField:'Id',
        queryMode:'local',
        store: myStore
    }]
});

答案 1 :(得分:2)

我发现创建具有两个字段id,name的简单模型很有用,然后在所有静态存储(我用于组合框)上使用此模型,其中值列表是预定义的。

答案 2 :(得分:2)

如果您正在使用Architect,则可以在ComboBox的store属性中指定一个数组。创建额外的商店并没有任何意义。模型,如果你只是想要一个静态的'标题'组合框。

xtype:'combo',
fieldLabel:'Title',
name:'division',
queryMode:'local',
store:['Mr','Mrs','Ms'],
displayField:'title',
autoSelect:true,
forceSelection:true

P.S。为了将商店属性更改为Architect中的本地数组,您需要选择商店文本左侧的小图标,并将其更改为数组而不是商店。 enter image description here

答案 3 :(得分:1)

您无需 在Extjs中的任何情况下在商店中设置模型。设置商店的fields属性。

http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.AbstractStore-cfg-fields

另外,请考虑商店的数据属性以获取本地数据。

http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.Store-property-data