Ext 向Ext.form.ComboBox()中添加列表的分类

1、静态

[javascript] view plaincopy

var staticComboBox = new Ext.form.ComboBox({  
 fieldLabel:'回访结果',  
 name:'result',  
 hiddenName:'result',  
 anchor:'100%',  
 editable:false,  
 readOnly:true,  
 mode:'local',  
 triggerAction:'all',  
 store:new Ext.data.SimpleStore({  
  fields:['code','desc'],   
  data:[  
     ['全部','全部'],  
     ['回访成功','回访成功'],  
     ['无人','无人'],  
     ['错号','错号'],  
     ['停机','停机']  
  ],  
  autoLoad:true  
 }),  
 value:'全部',  
 valueField:'code',  
 displayField:'desc'  
});  
 

2、动态:

 

[javascript] view plaincopy

//前台     
var dynamicComboBox = new Ext.form.ComboBox({     
    fieldLabel:'回访人员',     
    hiddenName:'operator',     
    name: 'operator',     
    mode: 'remote',     
    triggerAction:'all',     
    anchor:'100%',     
    editable : false,     
    readOnly:true,     
    store:     
        new Ext.data.Store({     
            proxy:new Ext.data.HttpProxy({     
                url:'TestAction!loadOperator.action'    
            }),     
            reader:new Ext.data.JsonReader({     
                root: 'root',     
                totalProperty: 'totalProperty',     
                fields:['code','desc']     
            }     
        ),     
        autoLoad:true    
    }),     
    valueField: 'code',   //值字段     
    displayField: 'desc', //显示字段      
    value:'全部'    
});     
//后台参见:http://blog.csdn.net/xieshengjun2009/archive/2010/10/22/5959687.aspx   
 

3、动态取值后 - 前台另添加一条记录:


[javascript] view plaincopy

var record = Ext.data.Record.create([  
        {name:'code',type:'string',mapping:'0'},  
        {name:'desc',type:'string',mapping:'1'}  
]);  
  
var newRecord = new record({code:'全部',desc:'全部'});  
  
var store = new Ext.data.Store({  
    proxy:new Ext.data.HttpProxy({url:'TestAction!loadGroupName.action'}),  
    reader:new Ext.data.JsonReader({  
        totalProperty:'results',  
        root:'rows',  
        fields:[  
            {name:'code'},  
            {name:'desc'}  
        ]  
    }),  
    autoLoad:true,  
    listeners:{'load':function(){  
            store.add(newRecord);  
        }  
    }  
});  
  
var groupNameComboBox = new Ext.form.ComboBox({  
    name:'groupName',  
    width:130,  
    readOnly:true,  
    emptyText:'请选择',  
    valueField:'code',      //逻辑列名的实际值(code)  
    displayField:'desc',    //逻辑列名的显示值(decs)  
    triggerAction:'all',  
    editable : false,  
        width:140,  
        anchor:'100%',  
        store:store  
 

4、动态取值后 - 后台另添加一条记录:

     前台:


[javascript] view plaincopy

var dynamicComboBox = new Ext.form.ComboBox({  
    fieldLabel:'回访人员',  
    hiddenName:'operator',  
    name: 'operator',  
    mode: 'remote',  
    triggerAction:'all',  
    anchor:'100%',  
    editable : false,  
    readOnly:true,  
    store:  
        new Ext.data.Store({  
            proxy:new Ext.data.HttpProxy({  
                url:'TestAction!loadOperator.action'  
            }),  
            reader:new Ext.data.JsonReader({  
                root: 'root',  
                totalProperty: 'totalProperty',  
                fields:['code','desc']  
            }  
        ),  
        autoLoad:true  
    }),  
    valueField: 'code',   //值字段  
    displayField: 'desc', //显示字段   
    value:'全部'  
});  
后台:


[java] view plaincopy

Opterator optr = new Opterator();//返回的列表对象(自定义)  
  
List<Opterator> list = testService.loadtOpterator(map);  
  
Iterator<Opterator> it = list.iterator();  
int i=0;  
  
//将list列表数据封装成json格式的数据  
JSONObject jsonObject = new JSONObject();  
  
JSONArray jsonArray = new JSONArray();  
JSONObject jsonAll = new JSONObject();  
  
jsonAll.put("code", "全部");  
jsonAll.put("desc", "全部");  
  
jsonArray.put(i++, jsonAll);  
  
while(it.hasNext()){  
    JSONObject jsonObj = new JSONObject();  
    optr = (Opterator)it.next();  
    jsonObj.put("code", sr.getOptr());  
    jsonObj.put("desc", sr.getOptr());  
    jsonArray.put(i++, jsonObj);  
}  
  
jsonObject.put("totalProperty", list.size());  
jsonObject.put("root", jsonArray);  
  
// 输出到前台  
outJsonString(jsonObject.toString());  
第五种:直接在store的回掉函数里调用:

 

store.load({
callback: function(records, operation, success) {
store.insert(store.getCount()+1,[{'code':0,'desc':'全部'}])
},
scope: this
});
---------------------
作者:申公
来源:CSDN
原文:https://blog.csdn.net/haitaofeiyang/article/details/50204533?utm_source=copy
版权声明:本文为博主原创文章,转载请附上博文链接!

posted @ 2018-10-12 15:46  申公  阅读(1000)  评论(0编辑  收藏  举报