ComboBox

 

1、直接从html页面获取。

定义 var myData = [

['3m Co',71.72,0.02,0.03,'9/1 12:00am'],

            ['Alcoa Inc',29.01,0.42,1.47,'9/1 12:00am'],

ternational Group, Inc.',64.13,0.31,0.49,'9/1 12:00am']]

而后在

 var ds = new Ext.data.Store({

  proxy: new Ext.data.MemoryProxy(myData),//此处使用MemoryProxy获取

        reader: new Ext.data.ArrayReader({}, [

                       {name: 'company'},  //对应设置各个属性

                       {name: 'price', type: 'float'},

                       {name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'}

                  ])

        });

 

2.ComboBox的数据源store格式详解
在前面的例子里面,我们一直给ComboBox的数据源store赋值一维数组,其实store支持多维和Store.data.Store类型。

//下面就几种数据以代码举例说明

1.一维数组:["江西","湖北"],值同时赋给ComboBoxvaluetext

2.二维和多维数组:[["one","bbar","111"],["two","tbar","222"]],第一维和第二维分别赋值给valuetext,其他维忽略

3.store类型:包括GroupingStore, JsonStore, SimpleStore.

    //我们分三步走:

    //第一步:提供数据:

        var data=[['湖北','hubei'],['江西','jiangxi'],['安徽','anhui']];

    //第二步:导入到store中:

        var store = new Ext.data.SimpleStore({

            fields: ['chinese', 'english'],

            data : data

        });

    //第三步 :store托付给comboBoxstore

    var combo = new Ext.form.ComboBox({

        store: store,

        displayField:'english',//store字段中你要显示的字段,多字段必选参数,默认当moderemotedisplayFieldundefine,当select列表时displayField"text"

 mode: 'local',//因为data已经取数据到本地了,所以'local',默认为"remote",枚举完

        emptyText:'请选择一个省份...',

        applyTo: 'combo'

});

 

3.ComboBoxvalue获取
添加listeners事件:

//ComboBox的事件很多(api),我们无法一一讲解,但是我们可以举一反三,select事件就是其中典型的一个     

 listeners:{

           "select":function(){

  alert(Ext.get("combo").dom.value);  //获取idcombo的值也或者是alert(this.value);

                        }

     }  //这里我们提供了一种不是很好的方法,在此不做过多停留,(有待进一步验证)

 

4.ExtjsComboBox样式应用到select的下拉框中去
核心参数介绍

transform:id//用于转换样式的,TimeField作为ComboBox的子类也有此属性

核心代码:

//js代码

var ExtSelect=new Ext.form.ComboBox({

            transform:"select",//html中的id

            width:80//宽度

        });

//html代码

<select id="select">

        <option value="1">浪曦</option>

        <option value="2">博客园</option>

        <option value="3">百度</option>

        <option value="4">新浪</option>

    </select>

//是不是超级简单?

 

5.ComboBox的其他重要参数

1.valueField:"valuefield"//value值字段

2.displayField"field" //显示文本字段

3.editablefalse//false则不可编辑,默认为true

4.triggerAction:"all"//请设置为"all",否则默认为"query"的情况下,你选择某个值后,再此下拉时,只出现匹配选项,如果设为"all"的话,每次下拉均显示全部选项

5.hiddenName:string //真正提交时此comboname,请一定要注意

6.typeAhead:true,//延时查询,与下面的参数配合

7.typeAheadDelay:3000,//默认250

//其他参数,请参考api,或自行尝试

关于combobox的其他花俏功能在此不多做介绍。

最 后一点,如何实现在aspx页面更灵活的分离cs数据和js数据的交互?因为我们都喜欢把js放在一个单独的文件,然后在aspx页面引用这样就有一个问 题,我在js里直接获取cs数据就有点不方便。我认为可以这样,在aspx页面里获取数据,并作为js,你就js变量,你就可以在js里引用了,或者直接 通过url地址获取。

之所以这么啰嗦的讲combobox,是因为这个东西有时候真的让人又爱又恨!下篇中我们继续讲解form中其他的表单元素!