在使用EXT combobox时,有时候需要动态设置下拉选项,并要求默认选中第一项。解决方法如下:
form表单中combobox字段:
{
xtype: 'combobox',
fieldLabel: APP.required + _('Destination Port Mapping Mode'), //宿端口映射方式
name: 'sinkPrimaryOduNni_mapType',
editable: false,
allowBlank: false,
msgTarget:"under",
valueField: 'code',
displayField: 'name',
store: {
fields: ['code', 'name'],
data: []
},
}
//宿端口映射方式
onGetSinkMapTypes(){
let me = this,
v = me.view,
vm = v.viewModel,
form = v.getForm();
let tempField = form.findField('sinkPrimaryOduNni_mapType');
let arr=[];
//这里为了简单,arr就写个静态选项值。实际是ajax动态加载的数据。
let temp={};
temp['code'] = "11";
temp['name'] = "OTU1";
arr.push(temp);
let dataStore = Ext.create('Ext.data.Store',{
autoLoad: true,
fields: ['code', 'name'],
data: arr
});
let dataItems = tempField.store.getData().items;
if(dataItems && dataItems.length > 0){
tempField.reset();//重置
tempField.store.loadData(arr);
}else{
//添加数据
tempField.store = dataStore;
}
//选中第一项
//Ext.getCmp("sinkPrimaryOduNni_mapType").select(tempField.store.getAt(0));
tempField.select(tempField.store.getAt(0));
}
说明:sinkPrimaryOduNni_mapType为form表单中combobox的id。触发onGetSinkMapTypes函数,动态设置sinkPrimaryOduNni_mapType的下拉选项,并默认选中第一项。
欢迎大家访问我的博客:随风飘雁的博客