Pessoal, sei que o grupo é de flex mas talvez alguém possa dar uma ajuda.
Estou fazendo alguns testes aqui no flash utilizando as2. Acontece que o
componente dataGrid não ordena corretamente qunaod o campo é numérico.
Ex: Tenho uma coluna valor que contêm os seguintes valores: 1, 2 e 10. Ele
ordena 1, 10 e 2.
Segue abaixo uma classe de teste que fiz:
class Teste extends MovieClip {
private var telaListar: MovieClip;
private var valores: Array = new Array({nome: "Thiago", valor: 1},
{nome: "Douglas", valor: 10}, {nome: "Francisco", valor: 2});
function onLoad() {
telaListar.dgListar.addColumn("nome");
telaListar.dgListar.addColumn("valor");
telaListar.dgListar.dataProvider = valores;
// Ordena a coluna valor em ordem numérica crescente.
telaListar.dgListar.dataProvider.sortOn("valor", Array.NUMERIC);
// Adiciona um evento headerRelease ao DataGrid.
telaListar.dgListar.addEventListener("headerRelease", ordena);
}
function ordena(evt: Object) {
var sortOrder = evt.target.sortDirection;
switch (evt.target.columns[evt.columnIndex].columnName) {
case "nome" :
telaListar.dgListar.dataProvider.sortOn("nome",
Array.CASEINSENSITIVE);
break;
case "valor" :
if (sortOrder == 'ASC') {
trace('asc');
telaListar.dgListar.dataProvider.sortOn("valor",
Array.NUMERIC);
} else {
trace('desc');
telaListar.dgListar.dataProvider.sortOn("valor",
Array.DESCENDING | Array.NUMERIC);
}
break;
}
}
}
Eu consegui ordenar corretamente ao carregar o dataGrid, porém quando clico
no header para ordenar de forma crescente ou decrescente não fica na ordem
correta.
Estou enviando em anexo o código.
--
Att,
__________________________
Thiago R. Fernandes
[As partes desta mensagem que não continham texto foram removidas]
É AS2 ou AS3? Ou seria Flex2?
Eduardo Kraus
Desenvolvedor
eduardokraus@gmail.com
http://blog.mxml.com.br
Thiago,
Pelo q sei q se passar um Array para um dataGrid.dataProvider, este é convertido para ArrayCollection, neste caso faça:
telaListar.dgListar.dataProvider.refresh();
[]s
Fabio da Silva
http://fabiophx.blogspot.com/
--- Em flex-brasil@yahoogrupos.com.br, Thiago <thifernandes@...> escreveu
Opa Fábio, obrigado por responder... vou testar aqui e depois eu aviso se
funfou...
valeu.
--
Att,
__________________________
Thiago R. Fernandes
2009/9/24 Fabio <fabiophx2002@yahoo.com.br>
>
>
> Thiago,
> Pelo q sei q se passar um Array para um dataGrid.dataProvider, este é
> convertido para ArrayCollection, neste caso faça:
> telaListar.dgListar.dataProvider.refresh();
>
> []s
>
> Fabio da Silva
> http://fabiophx.blogspot.com/
>
> --- Em flex-brasil@yahoogrupos.com.br <flex-brasil%40yahoogrupos.com.br>,
Opa Eduardo, é AS2.
--
Att,
__________________________
Thiago R. Fernandes
2009/9/24 Eduardo Kraus <eduardokraus@gmail.com>
>
>
> É AS2 ou AS3? Ou seria Flex2?
>
> Eduardo Kraus
> Desenvolvedor
> eduardokraus@gmail.com <eduardokraus%40gmail.com>
> http://blog.mxml.com.br
>
> 2009/9/23 Thiago <thifernandes@gmail.com <thifernandes%40gmail.com>>
Esse é o problema com o "cross-posting".
Acaba que fica uma gurizada tentando ajudar nas duas listas.
Dá uma conferida, para pelo menos liberar o pessoal de ficar buscando a resposta, ok?
Hum legal... Muito obrigado Gabriela...
Sobre a publicação nas duas listas, eu publiquei porque sei que existem
pessoas que não participam das duas.
Agora uma dúvida, eu tenho mesmo que especificar o caminho completo do
dataGrid? Porque ele não acha quando cai no evento headerRelease?
Porque quando eu atribuo o array a primeira vez não dá problema.
Valeu.
--
Att,
__________________________
Thiago R. Fernandes
2009/9/24 gabriela.perry <gabrielaperry@hotmail.com>
>
>
> Esse é o problema com o "cross-posting".
> Acaba que fica uma gurizada tentando ajudar nas duas listas.
> Dá uma conferida, para pelo menos liberar o pessoal de ficar buscando a
> resposta, ok?
>
>
>
[As partes desta mensagem que não continham texto foram removidas]