Bom, o que você terá que fazer é extender o component do framework e criar 
o binding das variáveis envolvidas....

O que acontece na maioria dos casos é que o combobox possui um dataprovider 
dinâmico vindo de algum objeto remoto... provavelmente de uma requisição do 
banco..

E quando você faz o setter do index correto da lista do combo com o seu VO, 
ele ainda não carregou a lista por completo... então não consegue 
selecionar o valor correspondente..

Você tem que arrumar um jeito de monitorar qualquer alteração da lista que 
você injeta no dataprovider da combobox e fazer o binding novamente!... 
 Assim como qualquer atualização tanto do VO ou da lista que alimenta o 
dataprovider... um bom começo pra você procurar na internet seria ouvir 
este evento destas propriedades envolvidas... 

PropertyChangeEvent.PROPERTY_CHANGE

Sem falar que acredito que para selecionar o elemento correto seria ideal 
descobrir na sua lista do dataprovider, qual o index do objeto que 
procura... existem muitos exemplos nesta própria lista de discussão..

Seria um método que executa o loop na lista comparando a o valor a ser 
setado e os valores da propriedade específica desta lista....

Algo do tipo...

private function selectComboboxIndex():void
{
var i:int=0;
var flag:Boolean=true;
if (dataProvider && dataProvider.length != 0)
{

if (ArrayUtil.toArray(this.dataProvider).length != 0)
for (i; i < ICollectionView(this.dataProvider).length && flag; i++)
{
if ((this.dataProvider[i][dataField]) == _value)
{
selectedIndex=i;
flag=false;
}
}


}
}

Bom... pelo menos passei 1 ano com esse problema... e arrumei esta 
solução... se alguém tiver uma ideia melhor, ficaria feliz em conhecer!


Em sexta-feira, 20 de julho de 2012 22h29min02s UTC-3, vvigano escreveu:
>
> Boa noite pessoal.
>
>
> Estou desenvolvendo uma tela de cadastro de usuarios, onde existe um 
> formulario pra preenchimento de endereço. Nesse form, possuo 2 componentes 
> comboBox, sendo 1 para estado e outro para cidade. Neste mesmo form, possuo 
> um EnderecoVO, com os dados que serao enviados ao servidor. Pois bem, estou 
> tentando deixar o bind do combo com o campo correspondente do VO, porém ao 
> abrir a tela o componente comboBox nao se comporta do modo esperado. Quando 
> é novo registro, os valores da lista do comboBox aparecem corretamente, 
> porém no textinput dele já vem um valor preenchido, [Object bla bla], ao 
> invés de vir em branco. Do mesmo modo, quando edição, o valor do textinput 
> aparece correto, com o estado do registro, porém o selectedIndex fica -1, 
> desse modo, o validador acusa erro, ou seja, nao está selecionando 
> corretamente. Segue abaixo trechos do código do componente:
>
> <s:ComboBox id="uf"
> dataProvider="{ufList}"
> labelField="nome"
> prompt="@Resource(bundle='bundle', key='selecao')" 
> selectedItem="@{endereco.cidade.uf}"/>
>
> Alguém sabe como tratar essas situaçoes de novo registro e ediçao para o 
> componente ComboBox, best practices?
>
>
> Att.
>

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Reply via email to