作者微信 bishe2022

代码功能演示视频在页面下方,请先观看;如需定制开发,联系页面右侧客服
Ext组件combobox使用外部数据

Custom Tab

本文无实例, 下面进行原理和代码讲解

combobox是用store来存储数据的,store存放的数据是以数组的形式,数组中每个元素的类型为 Ext.data.Record

原理见下图

blob.png



下面代码展示如何将本地获取的数据通过离线方式显示在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);

效果图:

blob.png

Home