Saint, tomei a liberdade de editar seu exemplo, ficou algo assim: Funciona a parte dos valores numéricos, mas a data eu ainda não consegui formatar... E acho que este código está meio bagunçado, talvez tenha uma forma mais fácil de fazer isto...
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Script> <![CDATA[ import mx.events.DataGridEvent; import mx.collections.*; private var MyArray:ArrayCollection; [Bindable] private var sortA:Sort; private var sortByDate:SortField; private var sortByValor:SortField; private function headClick(event:DataGridEvent):void { if (event.dataField=="Valor") { MyArray = new ArrayCollection(dados); sortA = new Sort(); if(event.target.columns[event.columnIndex ].sortDescending==false) { // O primeiro parâmetro é o nome do campo. // O segundo parâmetro especifíca uma ordenação por caso-insensitivo. // O terceiro parâmetro especifíca se a ordem é desc ou asc. // O quarto parâmetro especifíca se é ordem numérica. sortByValor = new SortField("Valor", true, true, true); event.target.columns[event.columnIndex ].sortDescending=true; } else { // O primeiro parâmetro é o nome do campo. // O segundo parâmetro especifíca uma ordenação por caso-insensitivo. // O terceiro parâmetro especifíca se a ordem é desc ou asc. // O quarto parâmetro especifíca se é ordem numérica. sortByValor = new SortField("Valor", true, false, true); event.target.columns[event.columnIndex ].sortDescending=false; } sortA.fields=[sortByValor]; sortA.fields[0] = sortByValor; MyArray.sort=sortA; MyArray.refresh(); myGrid.dataProvider=MyArray; myGrid.rowCount=MyArray.length +1; event.preventDefault(); } } ]]> </mx:Script> <mx:Array id="dados"> <mx:Object Data="{new Date(2007, 01, 01)}" Valor="1000" /> <mx:Object Data="{new Date(2006, 01, 01)}" Valor="250" /> <mx:Object Data="{new Date(2006, 05, 02)}" Valor="300" /> <mx:Object Data="{new Date(2005, 06, 10)}" Valor="900" /> <mx:Object Data="{new Date(2007, 04, 02)}" Valor="3000" /> </mx:Array> <mx:DataGrid horizontalCenter="0" verticalCenter="0.5" id="myGrid" dataProvider="{dados}" headerRelease="headClick(event);" width="814" height="220"> <mx:columns> <mx:DataGridColumn dataField="Data" headerText="Data"/> <mx:DataGridColumn dataField="Valor" headerText="Valor"/> </mx:columns> </mx:DataGrid> </mx:Application> On 20/06/07, Andrey Wischneski <[EMAIL PROTECTED]> wrote: > > Tentei setar o valor da função ShowValor como int e no retorno tentei usar > o número sem formatação( return int(Row.Valor); )e mesmo assim ele não > ordena como número... > > Acho que tem algo aqui: > > > http://livedocs.adobe.com/flex/201/html/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Book_Parts&file=dpcontrols_062_18.html > > Mas ainda não consegui resultados... > > > On 20/06/07, Andrey Wischneski <[EMAIL PROTECTED]> wrote: > > > > Ah! Saint, desculpe lhe incomodar novamente com isso, mas no exemplo que > > você fez não deu muito certo a ordem da coluna "Valor"... > > > > > > On 20/06/07, SaintBr <[EMAIL PROTECTED]> wrote: > > > > > > http://saintbr.com.br/labs/MMC/bin/myDataGrid.html > > > > > > SaintBr. =] > > > blog.saintbr.com.br > > > > > > ----- Original Message ----- > > > *From:* Andrey Wischneski <[EMAIL PROTECTED]> > > > *To:* flexdev@googlegroups.com > > > *Sent:* Tuesday, June 19, 2007 8:51 PM > > > *Subject:* [flexdev] Ordenar Datagrid! > > > > > > Olá pessoal, > > > > > > Estou criando uma datagrid com várias colunas, primeiramente vem a > > > data, depois um campo numérico e depois um campo de texto e assim por > > > diante... > > > > > > O problema é que sempre quando eu clico para ordenar na coluna ela > > > ordena como se fosse uma string, exemplo: > > > > > > Crescente: > > > 89 > > > 75 > > > 659 > > > 58 > > > 1289 > > > > > > Tem como eu setar uma coluna como campo numérico? > > > > > > Outra pergunta: > > > > > > É possível colocar algo dentro da datagrid junto com o valor que vem > > > do banco de dados? Exemplo: > > > > > > Valor do banco de dados: 9999 > > > > > > Valor com o símbolo R$ 9999 > > > > > > E ainda sim formatar como se fosse um número? > > > > > > Outra dúvida, a data do mysql vem como yyyy-mm-dd, tem como eu > > > formatar dentro do "dataField" como dd/mm/yyyy? > > > > > > > > > Estou pegando os valores desta forma: > > > > > > <mx:DataGrid dataProvider="{dadosInput}" width="100%" height="100%"> > > > <mx:columns> > > > <mx:DataGridColumn textAlign="center" > > > dataField="date" headerText="Data"/> > > > <mx:DataGridColumn textAlign="center" > > > dataField="hosts" headerText="Hosts"/> > > > <mx:DataGridColumn textAlign="center" > > > dataField="sites" headerText="Sites"/> > > > <mx:DataGridColumn textAlign="right" > > > dataField="bytes" headerText="Bytes"/> > > > <mx:DataGridColumn textAlign="right" > > > dataField="cachePercent" headerText="Cache"/> > > > </mx:columns> > > > </mx:DataGrid> > > > > > > > > > Muito Obrigado pela ajuda e peço desculpas se alguma dessas perguntas > > > já foram respondidas em algum outro tópico, não encontrei exatamente o que > > > eu queria ainda... > > > > > > > > > > > > > > > --~--~---------~--~----~------------~-------~--~----~ 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 [EMAIL PROTECTED] Mais opções estão disponíveis em http://groups.google.com/group/flexdev -~----------~----~----~----~------~----~------~--~---