原文地址:http://blog.csdn.net/liuguxing/article/details/8623190
- 项目中经常用到选择框,需要从后台异步加载数据,可单独写一个组件进行加载
- App.ComboBox = function(combo){
- var comboBox = new Ext.form.ComboBox({
- store:new Ext.data.JsonStore({
- autoLoad : false,
- url:__ctxPath+"/code/get.do?name="+combo.codeName,
- root: ‘data‘,
- fields : [‘name‘,‘id‘],
- listeners:{
- load:function(){
- comboBox.setValue(comboBox.getValue());
- }
- }
- }),
- name:combo.name,
- fieldLabel:combo.fieldLabel,
- id:combo.id,
- hiddenName:combo.hiddenName,
- displayField:‘name‘,
- valueField :‘id‘,
- typeAhead:false,
- mode:‘local‘,
- triggerAction:‘all‘,
- emptyText:‘请选择...‘
- });
- return comboBox;
- };
编辑数据的时候需要默认选中某一项,可编写函数
- App.selectComboBox = function(hiddenName,comboBoxId,value){
- <span style="white-space:pre"> </span>
- var combo = Ext.getCmp(comboBoxId);
- var range = combo.getStore().getRange();
- if(range != null && range.length>0){
- var displayName = value;
- for(var i=0;i<range.length;i++){
- if(value == range[i].data.id){
- displayName = range[i].data.name;
- }
- }
- }
- combo.setValue(displayName);<span style="white-space:pre"> </span>
- Ext.query("*[name="+hiddenName+"]")[0].value = value;<span style="white-space:pre"> </span>
- }
需要注意的是,在调用App.selectComboBox之前,必须先调用comboBox.getStore().load(); 加载数据,不然上面getRange()获取不到数据。
[转]Ext ComboBox 默认选中某一项
原文:http://www.cnblogs.com/dirgo/p/5304876.html