2010-03-27 8 views
0

Je souhaite remplir une zone de liste déroulante après avoir cliqué sur un bouton.ComboBox de remplissage dynamique (Flex)

Ceci est mon code:

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

    cbWijzigCategorie.dataProvider = dpNames; 

Mais quand il exécute la dernière ligne, je reçois alwas l'erreur suivante:

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

Je ne sais pas pourquoi.

Merci beaucoup, Vincent

Répondre

0

Votre combobox instancié? En regardant le message d'erreur, le problème viendrait de "cbWijzigCategorie.datprovider". Il ne peut pas accéder à la propriété dataprovider car cbWijzigCategorie est null.

Où attribuez-vous le fournisseur de données à la liste déroulante? À l'intérieur ou à l'extérieur du composant?

Cordialement.

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

Assurez-vous que arrCategories n'est pas vide et qu'il est correctement initialisé.