Sencha Touch如何在Picker中显示商店中的值?

时间:2013-05-08 10:32:10

标签: sencha-touch-2 picker

我需要在picker中添加我的商店值。在Sencha有可能吗?如果有人知道答案,请帮助我。提前谢谢。

2 个答案:

答案 0 :(得分:1)

var picker = Ext.create('Ext.Picker', {
slots: [
    {
        name : 'limit_speed',
        title: 'Speed',
        data : [
            {text: '50 KB/s', value: 50},
            {text: '100 KB/s', value: 100},
            {text: '200 KB/s', value: 200},
            {text: '300 KB/s', value: 300}
        ]
    }
]
});
Ext.Viewport.add(picker);
picker.show();

您可以使用商店替换数据,请阅读以下链接中提供的文档。

  

带有几个键值的插槽配置:

     

name:插槽的名称(在此Ext.picker.Picker中使用getValues时将是键)。

     

title:此插槽的标题(如果useTitles设置为true)。

     

data / store:用于此插槽的数据或存储。

http://docs.sencha.com/touch/2.2.0/#!/api/Ext.picker.Picker

从商店设置插槽数据:

slots : [{
     store:null,
     name:'picker'
}]

答案 1 :(得分:0)

这有点旧,但可能对某人有帮助。

您可以在initialize函数中调用setStore()方法,然后需要将选择器槽上的valueField属性设置为您希望从商店中获得的值。

带槽的选择器示例并初始化:

Ext.define('MyApp.view.JobPicker', {
extend: 'Ext.picker.Picker',
alias: 'widget.jobpicker',

config: {
    zIndex: 10,
    useTitles: true,
    doneButton: {
        action: 'donePreviousJobPicker'
    },
    cancelButton: {
        action: 'cancel'
    },
    slots: [
        {
            xtype: 'pickerslot',
            itemTpl: [
                '{jobName}'
            ],
            align: 'center',
            name: 'JobSlot',
            title: 'Select Previous Job',
            valueField: 'indexID'
        }
    ]
},

initialize: function() {
    this.callParent();

    var jobs = Ext.getStore("JobsPickerStore");
    jobs.clearFilter(true);
    this.query('pickerslot[name=JobSlot]')[0].setStore(jobs);
}

});