Sencha Touch 下拉列表 selectfield 的使用

定义一个下拉列表:

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;

奇怪的是Sencha Touch 并未提供获取显示字符串的方法,当然需要获得显示字符串的这种需求也确实少见。不过以备不时之需,下面仍给出两种方式获得选择的项的展示字符串:

1.options:

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

你可能感兴趣的:(select,text,sencha,options,获得text)