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 [email protected]
Para sair da lista, envie um email em branco para
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev