2010-03-27 112 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不爲空且已正確初始化。