Olá pessoal, estou tentando fazer um form para editar um objeto e estou com dificuldade para selecionar o combobox com o valor original do objeto a ser alterado.
Andei pesquisando do google e vi que é usado um for para selecionar o index do combobox. Tentei de várias fomas e não consegui, segue o código:
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()" title="Modifica e-mail" width="600"
showCloseButton="true" close="PopUpManager.removePopUp(this);">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.managers.PopUpManager;
import br.com.crtecnologia.sendmail.entity.mailing.Contact;
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
[Bindable]
private var categoryList:ArrayCollection;
public var contact:Contact;
public static const OK:String = "modifyContact_OK";
private function init():void
{
PopUpManager.centerPopUp(this);
listAllCategory();
nameTxt.text = contact.name;
emailTxt.text = contact.mail;
statusModify.selectedValue = contact.status;
selectComboBox(cbCategory, contact.getCategoryId());
}
public function selectComboBox(comboBox: ComboBox, id: int): void
{
var dataProvider:ArrayCollection = ArrayCollection(comboBox.dataProvider);
var selectedIndex: int = 0;
for (var i:int = 0; i < dataProvider.length; i++) {
if (dataProvider[i].id == id) {
selectedIndex = i;
break;
}
}
comboBox.selectedIndex = i;
}
private function listAllCategory():void
{
categoryService.listAllCategory();
}
private function listAllCategoryResult(event:ResultEvent):void
{
categoryList = event.result as ArrayCollection;
}
]]>
</mx:Script>
<mx:RemoteObject id="categoryService" destination="categoryServices">
<mx:method name="listAllCategory" result="listAllCategoryResult(event)"/>
</mx:RemoteObject>
<mx:Form width="100%">
<mx:FormHeading label="Dados do contato" fontSize="10"/>
<mx:FormItem label="Nome:" width="100%" required="true">
<mx:TextInput id="nameTxt" width="100%"/>
</mx:FormItem>
<mx:FormItem label="E-mail:" width="100%" required="true">
<mx:TextInput id="emailTxt" width="100%"/>
</mx:FormItem>
<mx:FormItem label="Categoria:" width="100%" required="true">
<mx:ComboBox id="cbCategory" prompt="Selecione uma categoria" dataProvider="{categoryList}"
minWidth="180" labelField="name" width="100%"/>
</mx:FormItem>
<mx:FormHeading label="Situação" fontSize="10"/>
<mx:FormItem label="Situação:" width="100%" required="true" direction="horizontal">
<mx:RadioButtonGroup id="statusModify"/>
<mx:RadioButton id="statusAtivo" groupName="statusModify" label="Ativo" value="true"/>
<mx:RadioButton id="statusBaixado" groupName="statusModify" label="Baixado" value="false"/>
</mx:FormItem>
<mx:FormItem width="100%" direction="horizontal" horizontalAlign="right">
<mx:Button label="cancelar" icon="@Embed('assets/icons/delete.png')" click="PopUpManager.removePopUp(this);"/>
<mx:Button id="confirmBtn" label="confirmar" icon="@Embed('assets/icons/save.png')" />
</mx:FormItem>
</mx:Form>
</mx:TitleWindow>
Valeu!
