动态填充ComboBox(Flex)

时间:2010-03-27 12:54:12

标签: flex actionscript-3

我想在点击一个按钮后填充一个ComboBox。

这是我的代码:

    var dpNames:ArrayCollection = new ArrayCollection();
    for each(var ca:Categorie in arrCategories)
    {
          dpNames.addItem ({label: ca.name, data: ca.value});
    }       

    cbWijzigCategorie.dataProvider = dpNames;

但是当他执行最后一行时,我得到以下错误:

  

TypeError:错误#1009:无法访问   null对象的属性或方法   参考

我不知道为什么。

非常感谢, 文森特

3 个答案:

答案 0 :(得分:1)

    private function categorieItemClick(evt:ItemClickEvent):void
    {

            var dpNames:ArrayCollection = new ArrayCollection();
            for each( var ca:Categorie in arrCategories)
            {
                dpNames.addItem ({label: ca.Name, data: ca.Name});
            }                   
            cbWijzigCategorie.dataProvider = dpNames;


    }



<mx:ButtonBar 
        x="10" y="36" 
        id="tbtnbarCategorie" 
        dataProvider="vsCategorie" 
        itemClick="categorieItemClick(event)">
</mx:ButtonBar>

    <mx:ViewStack 
        x="10" y="64" 
        id="vsCategorie" 
        width="601" height="343">

           <mx:Canvas label="Wijzig categorie" 
        id="cnvsChangeCategorie" 
        width="100%" height="100%">
        <mx:Label 
        x="10" y="10" 
        text="Kies categorie"/>
             <mx:ComboBox 
        x="101" y="8" 
        id="cbWijzigCategorie"></mx:ComboBox>
           </mx:Canvas>

    </mx:ViewStack>

答案 1 :(得分:0)

你的组合框是否已经实现了? 查看错误消息,问题将来自“cbWijzigCategorie.datprovider”。它无法访问dataprovider属性,因为cbWijzigCategorie为null。

您在哪里将数据提供者分配到组合框?在组件内部或外部?

问候。

答案 2 :(得分:0)

确保arrCategories不为空且已正确初始化。