2009-11-10 73 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();"/> 

這裏是從RemoteObject獲取組的數組(groupName,GroupID每行)並顯示在ComboBox中。我選擇了selectedIndex爲0,1,2,3的組,但我希望我的groupID具有相應的組名,這些組名都帶到了客戶端。使用ArrayCollection數據提供程序訪問ComboBox的數據

如何獲得所選組的groupId?

回答

2

你應該能夠得到它,像這樣:一個mx.events.ListEvent.CHANGE處理器連接到ComboBox

grpLst.selectedItem.GroupID; 

編輯

或者來自:

event.target.selectedItem.GroupID 

編輯

啊,代碼格式已更新,更易於閱讀。我看到您正在使用關閉事件,並將selectedItem變量設置爲ComboBoxselectedIndex屬性。你可以只改變,使得可變selectedItem實際上引用selectedItem propterty的ComboBox像這樣:

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

或者只是使用索引來從dataProvider獲取數據:

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

公共職能groupListRH (event:ResultEvent):void {groupsList = event.result as ArrayCollection;} public function show(event):void {selectedItem =(event.target as ComboBox).selectedIndex; Alert.show(selectedItem.toString()。groupId);} 是不是像這樣...我怎麼能得到groupId(確切的ID哪些進入arraycollection通過remoteobject)選定的GroupName ...? – 2009-11-10 18:28:48

+0

使用該代碼向您的問題追加編輯,或創建一個新問題。我不是編譯器,所以我只能在可視化格式化時解析代碼。 ;-) – 2009-11-10 19:05:34