Sencha Touch Ext.picker setData无法正常工作

时间:2012-07-10 01:14:57

标签: extjs

我一直试图弄清楚为什么我无法使用setData方法更新Sencha Touch选取器数据字段(请参阅帖子末尾的代码)。我创建了一个名为slotsdata的数组,我在其中定义了数据。数据看起来完全像这样:

{text: '50 KB/s', value: 50},  
         {text: '100 KB/s', value: 100},  
         {text: '200 KB/s', value: 200},  
         {text: '300 KB/s', value: 300} 
  1. 当我尝试使用setData()设置数据时 picker.setData(slotsdata); 没有显示错误,但选择器不显示任何数据。

  2. 当我尝试更新这样的数据时:
    slots: [
    {
    name : 'picker_slot1',
    title: 'slot1',
    data: [slotsdata]
    }
    ]
    这是行不通的。控制台中没有错误。选择器是空的。

  3. 我可以更新的唯一方法是使用以下语法:

    slots: [
    {
    name : 'picker_slot1',
    title: 'slot1',
    data: slotsdata
    }
    ]

  4. 我希望能够使用方法#1更新我的选择器数据。任何人都可以帮我解决这个问题。任何帮助将不胜感激。

    这是代码:

    myFunction: function(){  
    var data = this.getData();  
    var slotsdata = [];  
    var pickerData = data.dosage.split(',');  
    for( var i = 0; i < pickerData.length; i++ ){  
        slotsdata.push({text: pickerData[i], value: pickerData[i]})  
    }  
    var picker = Ext.create('Ext.Picker', {  
        slots: [  
            {  
                name : 'picker_slot1',  
                title: 'slot1',  
                data: slotsdata  
            }  
        ]  
    });  
    //this does not work  
    //picker.setData(slotsdata);  
    

    }

1 个答案:

答案 0 :(得分:2)

您可以使用setSlots()选择器类方法,如:

picker.setSlots({
    name: 'limit_speed',
    title: 'Speed',
    data: [
        { text: '50 KB/s', value: 50 },
        { text: '100 KB/s', value: 100 }
    ]
});