在使用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的下拉选项,并默认选中第一项。
欢迎大家访问我的博客:随风飘雁的博客