定义一个下拉列表:数组
xtype : 'selectfield', label : '这是下拉列表', labelWrap : true,//自动换行 displayField:"newText",//默认为text valueField:"newValue", //默认为value options : [ { newText : 'newtext1', newValue : 'newValue1' }, { newText : 'newtext2', newValue : 'newValue2' }, ], listeners : { change : {// 内容改变 fn : function(obj, newValue, oldValue, eOpts) { //这里添加你的值改变事件要执行的动做 } } }
newText和newValue是下拉列表对应的显示字符串和显示字符串所对应的值,默认为text和value,主要是用来处理与服务器传来的数据源对应的名字对应;服务器
数据源能够是数组和store,其中数组对应为options;this
奇怪的是Sencha Touch 并未提供获取显示字符串的方法,固然须要得到显示字符串的这种需求也确实少见。不过以备不时之需,下面仍给出两种方式得到选择的项的展现字符串:spa
1.options:code
var options = this.config.gzclgcs.getOptions();//得到selectField的options var value = this.config.gzclgcs.getValue();//得到当前选中项的值(默认为value) var len = options.length; for (var i = 0; i < len; i++) { if (options[i].newValue == value) { return options[i].newText; } }
2.store:事件
var value = this.config.gzclgcs.getValue(); var store = this.config.gzclgcs.getStore(); var len = store.getCount(); for(var i=0;i<len;i++) { if(store.getAt(i).get('newValue') == value) { return store.getAt(i).get('newText'); } }
关于setOptions()方法,其实在Sencha Touch 的内部仍是生成了一个store。因此即使是用setOptions的方法设置数据的也能够经过第二种方式得到指定value获得对应的fieldValue字符串