2010-03-27 106 views
0

我想在单击按钮后填充组合框。动态填充组合框(Flex)

这是我的代码:

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

    cbWijzigCategorie.dataProvider = dpNames; 

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

TypeError: Error #1009: Cannot access a property or method of a null object reference.

我不知道为什么。

非常感谢, 文森特

回答

0

是您的组合框实例化? 看看错误消息,问题将来自“cbWijzigCategorie.datprovider”。它无法访问dataprovider属性,因为cbWijzigCategorie为null。

你将数据提供者分配给组合框的位置?组件内部还是外部?

问候。

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> 
0

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