quarta-feira, 14 de abril de 2010

filterFunction - Estados X Cidades

Blz?!

Esse é um exemplo "clássico" onde a aplicação tem duas comboBox, estado e cidade,o usuário seleciona o estado e na combo de cidades serão listadas apenas as cidades do estado selecionado, para fazer isso vamos fazer uso de 2 ArrayCollection (estado e cidade) e para fazer o filtro a propriedade filterFunction


FilterFnc.mxml


  
  
  
  
  
  




FilterFnc.as

import mx.collections.ArrayCollection;
 
 [Bindable] 
 private var _uEstado: ArrayCollection = new ArrayCollection([
   {estado: 'Acre - AC', codEst: '1'},
   {estado: 'Amazonas - AM', codEst: '2'},
   {estado: 'Bahia - BA', codEst: '3'}
 ]);
 
 [Bindable]
 private var _uCidade: ArrayCollection = new ArrayCollection([
   {codEst: '1', cid: 'Acrelandia - AC'},
   {codEst: '2', cid: 'Alvaraes - AM'},
   {codEst: '1', cid: 'Assis Brasil - AC'},
   {codEst: '3', cid: 'Alagoinhas - BA'},
   {codEst: '1', cid: 'Brasileia - AC'},
   {codEst: '2', cid: 'Anori - AM'},
   {codEst: '1', cid: 'Epitaciolandia - AC'},
   {codEst: '3', cid: 'Acajutiba - BA'},
   {codEst: '3', cid: 'Adustina - BA'},
   {codEst: '1', cid: 'Cruzeiro do Sul - AC'},
   {codEst: '1', cid: 'Capixaba - AC'},
   {codEst: '2', cid: 'Amatura - AM'},
   {codEst: '2', cid: 'Anama - AM'},
   {codEst: '1', cid: 'Bujari - AC'},
   {codEst: '2', cid: 'Apui - AM'},
   {codEst: '3', cid: 'Abaira - BA'},
   {codEst: '3', cid: 'Abare - BA'},
   {codEst: '2', cid: 'Autazes - AM'},
   {codEst: '2', cid: 'Atalaia do Norte - AM'},
   {codEst: '3', cid: 'Aiquara - BA'},
   {codEst: '3', cid: 'Agua Fria - BA'}
 ]);  

 private function setFiltro(): void {
    _uCidade.filterFunction = fncFiltraCidade;
    _uCidade.refresh();
    cbxCidade.selectedIndex = 0;
 }
 
 private function fncFiltraCidade(Item: Object): Boolean {
   if (Item.codEst.search(cbxEstado.selectedItem.codEst) != -1)
     return true;
   else 
     return false;
 }
 
 private function removeFiltro(): void {
   cbxEstado.selectedIndex = -1;
   cbxCidade.selectedIndex = -1;
   _uCidade.filterFunction = null;
   _uCidade.refresh();  
 }
 




Bons estudos e bom trabalho a todos.

Abraços

1 comentários:

Muito bom artigo, parabéns, tá ficando bom em flex hein, hehehehe, um abraço pro amigo.

Postar um comentário

Twitter Delicious Facebook Digg Stumbleupon Favorites More