Bug no Adobe Flex usando selectedIndex do DropDownList

Hoje perdi algum tempo com um bug estúpido no Flex (4.1).

Quando você define selectedIndex diretamente em um DropDownList o comportamento nem sempre é o esperado. Geralmente fica de uma modo que funciona, depois não funciona, ai então funciona, depois não funciona…

Esse erro aparece muito naqueles casos em que você quer gerar os dados de um DropDownList após a seleção de um anterior. Por exemplo na seleção de Estado, Cidade, Bairro. Como nesse trecho de código:

this.opEstados = new ArrayList(event.result as Array);
ddEstado.selectedIndex = 0;

Nessa caso ddEstado é o DropDownList problemático.

A correção desse problema é bem idiota e “emporcadora de código”. Corrigimos assim:

this.opEstados = new ArrayList(event.result as Array);
ddEstado.selectedIndex = -1;
ddEstado.selectedIndex = 0;

Isso mesmo! Simplesmente adicionando selectedIndex = -1 antes de definir o índice desejado.

Espero ter ajudado!

Leave a Reply