Eu vo dar uma procurada no meu favoritos, eu vi um post que tem exemplos de filtros personalizado bem simples.... ja respondo...
On 6/28/07, Andrey Wischneski <[EMAIL PROTECTED]> wrote: > > Talvez te ajude, da uma olhadinha aí... > > > <?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 sortByData: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(); > } > > if (event.dataField=="Data") > { > 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. > sortByData = new SortField("Data", 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. > sortByData = new SortField("Data", true, false, > true); > event.target.columns[event.columnIndex > ].sortDescending=false; > } > sortA.fields=[sortByData]; > sortA.fields[0] = sortByData; > MyArray.sort=sortA; > MyArray.refresh(); > myGrid.dataProvider=MyArray ; > myGrid.rowCount=MyArray.length +1; > event.preventDefault(); > } > } > public function FormatData(Row:Object, Coluna:DataGridColumn) > : String > { > return _DateFormatter.format(Row.Data); > } > public function FormataValor(Row:Object, > Coluna:DataGridColumn) : String > { > return _CurrencyFormatter.format( Row.Valor); > } > ]]> > </mx:Script> > > <mx:DateFormatter id="_DateFormatter" formatString="DD/MM/YYYY" /> > > <mx:CurrencyFormatter id="_CurrencyFormatter" currencySymbol="R$ " > decimalSeparatorTo="," thousandsSeparatorTo=" ." precision="2" /> > > <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:Object Data="{new Date(2008, 01, 01)}" Valor="1000" /> > > <mx:Object Data="{new Date(2009, 08, 01)}" Valor="250" /> > > <mx:Object Data="{new Date(2001, 01, 02)}" Valor="300" /> > > <mx:Object Data="{new Date(2002, 10, 10)}" Valor="900" /> > > <mx:Object Data="{new Date(2003, 12, 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" > labelFunction="{FormatData}"/> > > <mx:DataGridColumn dataField="Valor" headerText="Valor" > labelFunction="{FormataValor}" /> > > </mx:columns> > > </mx:DataGrid> > > </mx:Application> > > > On 28/06/07, Andrey Wischneski <[EMAIL PROTECTED]> wrote: > > > > Tem um tópico que eu tive que fazer isso... > > > > Mas da maneira que fiz ele da um sort na array que contém os dados... > > > > Da uma procurada que você acha... > > > > > > On 28/06/07, Leandro Rodrigues Chaves <[EMAIL PROTECTED]> wrote: > > > > > > > > > Fala galera, > > > > > > Estou iniciando no Flex. Desenvolvi um DataGrid que mostra os dados do > > > banco usando PHP (com AMFPHP), um componente paginador e sobrescrevi a > > > ordenação das colunas, para que fosse possível ordenar considerando > > > todos os dados da tabela, e não somente os que estão na tela, como faz > > > a ordenação padrão do DataGrid. > > > > > > Para isso usei o evento headerRelease do DataGrid e escrevi uma função > > > para fazer novamente a requisição dos dados trazendo-os ordenados pela > > > > > > coluna clicada. Está funcionando bem, mas como eu sobrescrevi a > > > ordenação padrão e evitei o Flex de usá-la com > > > event.preventsDefault(), a setinha pra cima ou pra baixo não aparece > > > mais. > > > > > > Alguém sabe como posso colocar a setinha ou, se necessário, colocar > > > essas imagens de setinhas dentro do cabeçalho da coluna na marra a > > > cada ordenação? Por exemplo, se a ordenação escolhida for Ascendente, > > > coloca a imagen seta1.gif dentro da célula do cabeçalho, se for > > > descendente coloco seta2.gif e se for retirada a ordenação da coluna > > > retirar a imagem também. > > > > > > Alguém pode me ajudar? > > > > > > > > > > > > > > > > > > -- Jackson F. de A. Mafra Designer e Desenvolvedor, Consultor Designer and Developer, Consultant --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
