如何使用商店的select字段的setOptions方法

时间:2011-10-03 12:28:18

标签: sencha-touch

我可以使用setOptions方法成功指定select字段的选项,如下所示:

setOptions(
[   {text: 'First Option',  value: 'first'},
{text: 'Second Option', value: 'second'},
{text: 'Third Option',  value: 'third'}
])

但是,我宁愿使用setOptions来处理加载的数据存储,而不是像上面那样对文本/值数组进行硬编码。

商店有一个项目类型'车辆',加载它的服务器的json响应是{'vehicle':'mercedes'},{'vehicle''jaguar'}的形式(忽略,如果我让json语法错误,我从内存中输入这个。最后,我可以将value字段与setOptions的文本字段相同。

然而,我很难过如何做到这一点。非常感谢能帮助我的人。

3 个答案:

答案 0 :(得分:1)

使用此:

{         id: 'theSelect',
        name: 'vechicleSelect',
       xtype: 'selectfield',
       store: storeObejct,
displayField: 'vehicle',
  valueField: 'vehicle'
}

在此处阅读整个API Sencha Touch selectfield

答案 1 :(得分:1)

您可以遍历商店并将数据推送到数组中,然后使用数组作为setOptions的参数。

答案 2 :(得分:1)

添加到warmachine的答案...... 在您看来:

                {
                    xtype: 'selectfield',
                    id: 'NameId',
                    label: 'Name',
                    labelWrap: true,
                    placeHolder: 'name'
                },

视图中的控制器或初始化功能:

initialize: function(){

    var me = this;
    me.callParent(arguments);

    var sto= Ext.getStore('Persons');
    sto.load();

    var options = [];

    sto.each(function(record){
        options.push({
            value: record.get('displayname'),
            text: record.get('displayname')
        });
    });

    var box = Ext.ComponentQuery.query('#NameId')[0];

    box.setOptions(options);
},