远程数据源Combobox

  Ext.define('bookInfo', {
         extend: 'Ext.data.Model',//新类继承自model
         fields: [{ name: 'bookName' }]//利用fields来定义数据模型的字段,这里利用name为数据模型定义了两个字段名
                                                          //city和postcode。也可以直接‘city’在fields为模型定义字段名
     });


     var postStore = Ext.create('Ext.data.Store', {//store数据集即是缓存
         model: 'bookInfo',//将数据集store与数据模型连接起来,即将postStore作为postModel的缓存
         proxy: {
             type:'ajax',
             url:''




         }
     });
    // Ext.Loader.setConfig({ enabled: true });
     Ext.QuickTips.init();
     Ext.create('Ext.form.Panel', {//起初没有运行成功,各种问题就是将panel写成了pannel。
         title:'本地数据源组合框',
         renderTo: Ext.getBody(),
         frame: true,
         width: 300,
         labelWidth: 50,
         labelAlign: 'left',
         labelSeparator: ':',
         items: [
         {
             xtype: 'combo',//定义表单项为组合框。combo
             fieldLabel: '邮政编码',
             listConfig: {
                // deferEmptyText:false,
                 emptyText: '未找到匹配值', //当值不在列表时的提示信息,使用firebug在EXT官网API下输入不存在的城市时可以显示,但在VS下运行无法显示
                 maxHeight: 100, //设置下拉列表的最大高度为100像素,设置小得话会导致下拉表中显示的城市少
             },
             name: 'postcode',//Ext。form。field。Base(表单字段基类,之前用到的什么文本输入框等都是起派生的)的配置项name表示表单项名称。
             //triggerAction: 'query',//默认为all,执行allQuery配置项,即单击触发按钮时发送查询combo的下拉列表绑定的所有数据源,并将数据返回
             //因此点击按钮时可以看到一列的城市列表,若是设置为query,只能查到输入框里的一条城市信息
             store:postStore,         //表示使用哪个数据集。这里数据集名称是没有‘’的。刚运行时加了‘’导致程序报很大的错。postStore是已经定义的变量,不用加‘’
             displayField: 'city',//组合框中显示的内容
             //valueField: 'postcode',
             queryMode: 'local',//如果数据集就在本地,即是就在本页面,不用向服务器请求时,将queryMode设置为local本地
             forceSelection: true,//强制使输入字段内的值必须是列表中的一个
             typeAhead: true,//输入第一个字时,即跳出列表中以其开头的词语。
             value: '深圳',//字段值默认值。也可写postcode,同时要valueField=‘postcode’
             //deferEmptyText: false


         }]
     });
posted @ 2014-10-24 21:16  lz3018  阅读(259)  评论(0编辑  收藏  举报