2009-11-10 7 views
0
[Bindable] 
public var groupsList:ArrayCollection; 

public function groupListRH(event:ResultEvent):void 
{ 
    groupsList=event.result as ArrayCollection;  
} 

<mx:ComboBox dataProvider="{groupsList}" 
      labelField="groupName" 
      id="grpLst" width="150" 
      prompt="Select one group "         
      close="selectedItem=ComboBox(event.target).selectedIndex"    
      focusIn="init();" /> 

<mx:LinkButton label="New Group" id="creatgrp" click="addNewGroup();"/> 

: Me voici devient tableau de groupes (groupName, GroupID chaque ligne) d'un RemoteObject et l'affichage dans une zone de liste déroulante. Je sélectionne les groupes avec selectedIndex comme 0,1,2,3, mais je veux que mes groupID de noms de groupes correspodants, qui apportent au côté client.Accès aux données d'un ComboBox avec un ArrayCollection dataProvider

Comment puis-je obtenir l'ID groupe du groupe sélectionné?

Répondre

2

Vous devriez pouvoir l'obtenir comme ceci:

grpLst.selectedItem.GroupID; 

EDIT

ou à partir d'un gestionnaire mx.events.ListEvent.CHANGE attaché au ComboBox:

event.target.selectedItem.GroupID 

EDIT

Ah, le formatage du code a été mis à jour et il est plus facile à lire. Je vois que vous utilisez l'événement close et que vous définissez une variable appelée selectedItem à la propriété selectedIndex du ComboBox. Vous pouvez simplement changer de sorte que la selectedItem variable de références en fait la selectedItem propterty du ComboBox comme ceci:

selectedItem=(event.target as ComboBox).selectedIndex; 
// Then get the GroupID from the selectedItem 
selectedGroupID = selectedItem.GroupID 

Ou tout simplement utiliser l'index pour obtenir les données de la dataProvider:

selectedIndex=(event.target as ComboBox).selectedIndex; 
// Then get the GroupID from the dataProvider 
selectedGroupID = groupList[selectedIndex]['GroupID'] 
+0

fonction publique groupListRH (event: ResultEvent): void {groupsList = événement.result sous ArrayCollection;} public function show (événement): void {selectedItem = (événement.target comme zone de liste déroulante) .selectedIndex; Alert.show (selectedItem.toString(). GroupId);} je ne reçois pas comme ceci ... comment puis-je obtenir groupId (identifiant exact qui entre dans arraycollection via remoteobject) de GroupName sélectionné ... ?? –

+0

Ajoutez une modification à votre question avec ce code ou créez une nouvelle question. Je ne suis pas un compilateur donc je ne peux analyser le code que lorsqu'il est formaté visuellement. ;-) –

Questions connexes