使用ArrayCollection dataProvider访问ComboBox的数据

时间:2009-11-10 15:05:47

标签: flex

[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为对应的组ID,这将带给客户端。

如何实际选择所选组的groupId?

1 个答案:

答案 0 :(得分:2)

你应该能够这样做:

grpLst.selectedItem.GroupID;

修改

或者来自mx.events.ListEvent.CHANGE附带的ComboBox处理程序:

event.target.selectedItem.GroupID

修改

啊,代码格式化已经更新,更容易阅读。我看到您正在使用close事件,并将名为selectedItem的变量设置为selectedIndex的{​​{1}}属性。您可以更改它,以便变量ComboBox实际引用selectedItem的{​​{1}}属性,如下所示:

selectedItem

或者只使用索引从ComboBox获取数据:

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