我所收集的几种ComboBox填充方式

我所收集的几种ComboBox填充方式: 第一种:数组        var data = [['1', 'Lislie', 'D005', 'male'],                 ['2', 'Merry', 'D004', 'female'],                 ['3', 'Edison', 'D003', 'male'], ['4', 'Mark', 'D002', 'male'],                 ['5', 'Leeon', 'D001', 'male']];         // 格式化数据         var ds = new Ext.data.Store({             proxy : new Ext.data.MemoryProxy(data), // 数据源             reader : new Ext.data.ArrayReader({}, [ // 如何解析                     {                         name : 'id'                     }, {                         name : 'name'                     }, {                         name : 'depno'                     }, {                         name : 'sex'                     }])         });         ds.load();  //这一句很关键,表是打开页面就加载         this.storeList = new Ext.form.ComboBox({             store : ds,             fieldLabel : 'dfsfsd',             allowBlank : false,             forceSelection : true,             valueField : 'id', // option.value             displayField : 'name', // option.text             typeAhead : true,             triggerAction : 'all',             emptyText : 'Select a store...',             mode : 'local', //如果前面用了load,那么这里就应该用local,默认为remote             selectOnFocus : true,             width : 135         }); 第二种:本地(内存)简单Json数据        var folders = [{             'folderId' : '1',             'folderName' : '收信箱'         }, {             'folderId' : '2',             'folderName' : '发信箱'         }];                         //用于下拉列表的store                 var foldersJsonStore = new Ext.data.SimpleStore({                     fields: [{                         name: 'folderId',                         mapping: 'folderId'                     }, {                         name: 'folderName',                         mapping: 'folderName'                     }],                     data: folders                 });                 foldersJsonStore.loadData(folders);         this.combo = new Ext.form.ComboBox({             fieldLabel : '文件夹',             name : 'folderMoveTo',             displayField : 'folderName',             valueField : 'folderId',             typeAhead : true, // 自动将第一个搜索到的选项补全输入             triggerAction : 'all',             emptyText : '全部',             selectOnFocus : true,             forceSelection : true,             store : foldersJsonStore,             typeAhead : true,             lazyInit : false,             lazyRender : false,             mode : 'local'         }); 第三种:动态简单Json数据                 // 用于下拉列表的store         var foldersJsonStore = new Ext.data.SimpleStore({             proxy : new Ext.data.HttpProxy({                 url : './jsp/comboxdata.jsp'             }), // 数据源                        fields : [{                 name : 'folderId',                 mapping : 'folderId'             }, {                 name : 'folderName',                 mapping : 'folderName'             }]         });                 this.combo = new Ext.form.ComboBox({             fieldLabel : '文件夹',             name : 'folderMoveTo',             displayField : 'folderName',             valueField : 'folderId',             typeAhead : true, // 自动将第一个搜索到的选项补全输入             triggerAction : 'all',             emptyText : '全部',             selectOnFocus : true,             forceSelection : true,             store : foldersJsonStore,             typeAhead : true,             lazyInit : false,             lazyRender : false,             mode : 'remote' //这里的参数要注意         }); comboxdata.jsp: <%@ page language="java"     import="java.util.*,com.googlecode.jsonplugin.JSONUtil"%> <%     List list = new ArrayList();     HashMap hm = new HashMap();     hm.put("folderId", "1");     hm.put("folderName", "11111111111");     list.add(hm);     hm = new HashMap();     hm.put("folderId", "2");     hm.put("folderName", "2222222222222");     list.add(hm);     try {         String json = JSONUtil.serialize(list);         out.print(json);     } catch (Exception ex) {         ex.printStackTrace();     } %> 第四种:JsonReader读取到的数据         // 用于下拉列表的store         var foldersJsonStore = new Ext.data.Store({             proxy : new Ext.data.HttpProxy({                 url : './jsp/comboxdata.jsp'             }), // 数据源             reader : new Ext.data.JsonReader({}, ['folderId', 'folderName'])         });                 this.combo = new Ext.form.ComboBox({             fieldLabel : '文件夹',             name : 'folderMoveTo',             displayField : 'folderName',             valueField : 'folderId',             typeAhead : true, // 自动将第一个搜索到的选项补全输入             triggerAction : 'all',             emptyText : '全部',             selectOnFocus : true,             forceSelection : true,             store : foldersJsonStore,             typeAhead : true,             lazyInit : false,             lazyRender : false,             mode : 'remote'         }); comboxdata.jsp: <%@ page language="java"     import="java.util.*,com.googlecode.jsonplugin.JSONUtil"%> <%     List list = new ArrayList();     HashMap hm = new HashMap();     hm.put("folderId", "1");     hm.put("folderName", "11111111111");     list.add(hm);     hm = new HashMap();     hm.put("folderId", "2");     hm.put("folderName", "2222222222222");     list.add(hm);     try {         String json = JSONUtil.serialize(list);         out.print(json);     } catch (Exception ex) {         ex.printStackTrace();     } %> 第五种:ScriptTagProxy方式取得的数据         // construct the ComboBox's DataStore         var dsCustomer = new Ext.data.Store({             proxy : new Ext.data.ScriptTagProxy({                 url : './jsp/comboxdata_1.jsp'             }),             reader : new Ext.data.JsonReader({                 root : 'gridRows',                 totalProperty : 'totalCount'             }, [{                 name : 'id',                 mapping : 'id'             }, {                 name : 'name',                 mapping : 'name'             }])         });         // construct a ComboBox         this.customerCmb = new Ext.form.ComboBox({             fieldLabel : '区別',             store : dsCustomer,             displayField : 'name',             valueField : 'id',             typeAhead : true,             loadingText : 'loading...',             width : 160,             hiddenName : 'name',             //hideTrigger : true,             allowBlank : false,             minChars : 1,             forceSelection : true,             triggerAction : 'all'         }); comboxdata_1.jsp : <%@ page language="java" import="java.util.*,com.googlecode.jsonplugin.JSONUtil"%> <%         String cb = request.getParameter("callback");         if (cb != null) {             response.setContentType("text/javascript,charset=utf8");         }         List list = new ArrayList();     HashMap hm = new HashMap();     hm.put("id", "1");     hm.put("name", "11111111111");     list.add(hm);     hm = new HashMap();     hm.put("id", "2");     hm.put("name", "2222222222222");     list.add(hm);         HashMap rehm = new HashMap();     rehm.put("totalCount","1");     rehm.put("gridRows",list);     try {         String json = JSONUtil.serialize(rehm);         System.out.println("json:"+json);         out.print(cb + "(");         out.print(json);         out.print(");");     } catch (Exception ex) {         ex.printStackTrace();     }        /*              System.out.println(cb);         String json="{/"totalCount/": 1,/"gridRows/":["+"{/"id/" :1 ,/"name/":/"zhongxiaogang/"},{/"id/" :2 ,/"name/":/"linhuarui/"}]}";         out.write(cb + "(");         out.print(json);         out.write(");"); */ %> 示例文件: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>     <head>         <title>ComboBoxTest.html</title>         <meta http-equiv="content-type" content="text/html; charset=UTF-8">         <link rel="stylesheet" type="text/css" href="ext/resources/css/ext-all.css" />         <script type="text/javascript" src="ext/ext-base.js">         </script>         <script type="text/javascript" src="ext/ext-all.js">         </script>         <script type="text/javascript" src="ext/ext-lang-zh_CN.js">         </script>         <script>             Ext.onReady(function(){                 Ext.QuickTips.init();                 var data = [['1', 'Lislie', 'D005', 'male'], ['2', 'Merry', 'D004', 'female'], ['3', 'Edison', 'D003', 'male'], ['4', 'Mark', 'D002', 'male'], ['5', 'Leeon', 'D001', 'male']];                 // 格式化数据                 var ds = new Ext.data.Store({                     proxy: new Ext.data.MemoryProxy(data), // 数据源                     reader: new Ext.data.ArrayReader({}, [ // 如何解析                     {                         name: 'id'                     }, {                         name: 'name'                     }, {                         name: 'depno'                     }, {                         name: 'sex'                     }])                 });                 ds.load();                 var storeList = new Ext.form.ComboBox({                     store: ds,                     fieldLabel: 'dfsfsd',                     allowBlank: false,                     forceSelection: true,                     valueField: 'id', // option.value                     typeAhead: true,                     displayField: 'name', // option.text                     triggerAction: 'all',                     emptyText: 'Select a store...',                     mode: 'local',                     selectOnFocus: true,                     width: 135                 });                                 var folders = [{                     'folderId': '1',                     'folderName': '收信箱'                 }, {                     'folderId': '2',                     'folderName': '发信箱'                 }];                 //用于下拉列表的store                 var foldersJsonStore = new Ext.data.SimpleStore({                     fields: [{                         name: 'folderId',                         mapping: 'folderId'                     }, {                         name: 'folderName',                         mapping: 'folderName'                     }],                     data: folders                 });                 foldersJsonStore.loadData(folders);                 var combo = new Ext.form.ComboBox({                     fieldLabel: '文件夹',                     name: 'folderMoveTo',                     store: foldersJsonStore,                     displayField: 'folderName',                     valueField: 'folderId',                     mode: 'local',                     typeAhead: true, //自动将第一个搜索到的选项补全输入                     triggerAction: 'all',                     emptyText: '全部',                     selectOnFocus: true,                     forceSelection: true                 });                                 var provinces = [[1, '北京'], [2, '上海']];                                var cities = new Array();                                cities[1] = [[11, '海淀'], [22, '东城']];                                cities[2] = [[33, '黄埔'], [44, '浦东'], [55, '静安']];                                var comboProvinces = new Ext.form.ComboBox({                                    store: new Ext.data.SimpleStore({                                            fields: ["provinceId", "provinceName"],                                                data: provinces                                        }),                                        listeners: {                                            select: function(combo, record, index){                                                    comboCities.clearValue();                                                        comboCities.store.loadData(cities[record.data.provinceId]);                                                    }                                            },                                        valueField: "provinceId",                                        displayField: "provinceName",                                        mode: 'local',                                        forceSelection: true,                                        blankText: '请选择省份',                                        emptyText: '请选择省份',                                        hiddenName: 'provinceId',                                        editable: false,                                        triggerAction: 'all',                                        allowBlank: true,                                        fieldLabel: '请选择省份',                                        name: 'provinceId',                                        width: 80                                });                                 var comboCities = new Ext.form.ComboBox({                                    store: new Ext.data.SimpleStore({                                            fields: ["cityId", 'cityName'],                                                data: []                                        }),                                        valueField: "cityId",                                        displayField: "cityName",                                        mode: 'local',                                        forceSelection: true,                                        blankText: '选择地区',                                        emptyText: '选择地区',                                        hiddenName: 'cityId',                                        editable: false,                                        triggerAction: 'all',                                        allowBlank: true,                                        fieldLabel: '选择地区',                                        name: 'cityId',                                        width: 80                                });                                 var form = new Ext.form.FormPanel({                     region: 'center',                     labelWidth: 100,                     border: false,                     labelAlign: 'right',                     applyTo: 'local1',                     height: 200,                     width: 400,                     layout: 'form',                     items: [storeList, combo,comboProvinces,comboCities]                 });             });         </script>     </head>     <body>         <div id="local1">         </div>     </body> </html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冷月宫主

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值