Доступ к данным ComboBox с помощью ArrayCollection dataProvider - PullRequest
0 голосов
/ 10 ноября 2009
[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();"/>

Здесь я получаю массив групп (groupName, GroupID каждой строки) из RemoteObject и отображаю его в ComboBox. Я выбираю группы с selectedIndex как 0,1,2,3, но я хочу, чтобы мои groupID идентифицировали имена групп, которые приводятся на стороне клиента.

Как узнать фактический идентификатор группы выбранной группы?

1 Ответ

2 голосов
/ 10 ноября 2009

Вы должны быть в состоянии получить это так:

grpLst.selectedItem.GroupID;

EDIT

Или из обработчика mx.events.ListEvent.CHANGE, прикрепленного к ComboBox:

event.target.selectedItem.GroupID

EDIT

Ах, форматирование кода обновлено, и его стало легче читать. Я вижу, что вы используете событие close и устанавливаете переменную с именем selectedItem для свойства selectedIndex ComboBox. Вы можете просто изменить его так, чтобы переменная selectedItem фактически ссылалась на свойство selectedItem для 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']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...