Ext组件combobox使用外部数据
本文无实例, 下面进行原理和代码讲解
combobox是用store来存储数据的,store存放的数据是以数组的形式,数组中每个元素的类型为 Ext.data.Record
原理见下图

下面代码展示如何将本地获取的数据通过离线方式显示在combobox中
<1>创建combo与combo对应的store
var store = new Ext.data.Store({});
var combo = new Ext.form.ComboBox({
listeners : {
select : {
fn : function(combo, record, index) {
//选择combo下拉选项时调用此函数
return selectArea(combo, record, index);
}
}
},
allowBlank : false,
store : store,
emptyText : "--请选择--",
fieldLabel : "<font color='red'>*</font>城市",
editable : false,
anchor : "50%",
mode : "local",
id : "id_combo",
displayField : "address",
valueField : "code",
triggerAction : "all"
});<2>创建数据,与combo对应的store进行绑定, 注意 name, address这二个字段必须与comboBox中的
valueField 和 displayField 的值相对应
valueField 在combox选定一个项后,可以根据 Ext.getCmp('id_combo').getValue()来获得相应的code值
displayField显示在界面上
//构建数组,往数组中存放10个Record数据, 将数组存放到combobox的store中
var recordArray = new Array();
for(var i = 0; i < 10; i++){
var data = new Ext.data.Record();
data.set('code', i);
data.set('address', '江苏省南京市');
recordArray.push(data);
}
Ext.getCmp('id_combo').getStore.add(recordArray);效果图:
