Pesquisar este blog

segunda-feira, 29 de março de 2010

Campo numerico é ordenado como String no datagrid FLEX

Um outro problem que enfrentei, foi o seguinte:

tinha um campo numérico no banco e quando trazia estes dados para o DataGrid ele o ordenava como string, conforme abaixo:

1
11
12
2
22
3
33
333

Para resolver isso existe uma função no flex "sortCompareFunction", utilize a função abaixo:

private function numberSortFunction(obj1:Object, obj2:Object):int
{
        var n1: Number = Number(obj1["campo_que_deseja_ordenar"]) ;
        var n2: Number = Number(obj2["campo_que_deseja_ordenar"]) ;
        if( n1 < n2 ) {
             return -1;
       }
       else if( n1 > n2 )
      {
           return 1;
      }
          return 0;
}
 
 
Depois na coluna do grid que deseja ordenar, coloque, conforme abaixo:
 
<mx:DataGridColumn sortCompareFunction="numberSortFunction" width="450" headerText="Parent" dataField="campo_que_deseja_ordenar"/>

Pronto. Agora o sistema ordenará correto: 1,2,3.....

Nenhum comentário:

Postar um comentário