Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pino

[Resolvido] DATAGRID - erro ao ordenar por numero

Recommended Posts

fala galera, beleza?

=]

 

nao sou mto fã de usar componentes... mas o datagrid ta de bom tamanho

so q... suponhamos q eu tenha duas colunas... nome e aniversario...

 

bruno - 29/05/85

jukinha - 02/08/86

pedrinho - 05/04/87

 

se eu clico na coluna de aniversario ele me retorna...

 

jukinha - 02/08/86

pedrinho - 05/04/87

bruninho- 29/05/85

 

ou seja, ele vai pelo primeiro numero...

como fazer pra ele meio q ir de tras pra frente, e organizar certo?

flws

vlw

=]

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu lembro de já ter mexido com isso, você tem que mexer no dataProvider do dataGrid, ele tem a função sortItems(), que você pode controlar como ele

faz a comparação de ordenação, dá uma olhada no help pra ver

 

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está utilizando os campos "nome" e "aniversario", e tenho quase certeza que estes campos são do tipo "string", pois se o campo aniversario fosse do tipo "numerico", o resultado seria um cálculo de divisão (pois está utilizando as barras) - Sendo assim, para que a ordenação pela coluna aniversario seja correta (ordem de data), o campo deve ser do tipo "Date" - caso contrário não vai ordenar corretamente mesmo utilizando o "sortItems()".

 

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza!!!

entendi seu racionio... tem logica...

mas agora eu te pergunto... como declarar q uma coluna eh do tipo DATA?

=P

 

flws

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando utilizamos o componente DataGrid, geralmente acessamos uma base de dados externa, um arquivo XML ou um banco de dados via script server-side por exemplo. Sendo assim, será necessário também a utilização dos componentes XML Connector e o DataSet - Para formatar os seus campos, você deve configurar as opções abaixo no painel Component Inspector do seu componente XML Connector:

data type = Date

encoder = Date

encoder options = formato da sua data (DD/MM/YYYY) ou por extenso, entre outros disponíveis...

 

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

no cara... boiei... isso eh novidade pra mim... ve se você consegue me ajudar...

 

atraves do php... busco os dados no banco... retorno uma array e mando pro flash... o flash pega essa array e taca no datagrid... dai o problema de ordenar...

 

nao entendi como colocar o dataSet no meio... o caminho eh esse mesmo?

 

vou ir tentando aki

flws

vlws

=]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, achei que estivesse fazendo (configurando) tudo através dos componentes...

 

Como está fazendo por AS, o negócio muda de figura e a lógica é essa do ex. abaixo:

var dateSortOrder:Array = new Array(
	{name:"Z_Name", date: "15/10/2007"},
	{name:"T_Name", date: "18/01/2009"},
	{name:"G_Name", date: "20/08/2009"},
	{name:"W_Name", date: "21/05/1975"},
	{name:"E_Name", date: "10/06/2005"},
	{name:"B_Name", date: "29/01/2005"},
	{name:"A_Name", date: "25/12/1989"},
	{name:"S_Name", date: "22/11/2005"}
);
myDataGrid.dataProvider = dateSortOrder;
//
var myListener = new Object();
myListener.headerRelease = function(evt){
	dateSortAsc = function(a, b){
		dateA = a[evt.target.getColumnAt(evt.columnIndex).columnName];
		dateB = b[evt.target.getColumnAt(evt.columnIndex).columnName];

		my_dateA = new Date(dateA.slice(6, 10), dateA.slice(3, 5)-1, dateA.slice(0, 2));
		my_dateB = new Date(dateB.slice(6, 10), dateB.slice(3, 5)-1, dateB.slice(0, 2));

		if (my_dateA < my_dateB){
			return -1;
		}else if(my_dateA > my_dateB){
			return 1;
		}else{
			return 0;
		}
	}
dateSortOrder.sort(dateSortAsc);
};
myDataGrid.addEventListener("headerRelease", myListener);

Explicando:

Jogo os dados no Array (o campo data como String e formato padrão) e populo o DataGrid;

Dentro do evento "headerRelease" crio uma função para converter e comparar as datas, possibilitando a ordenação.

 

Espero que seja útil.

 

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara

a logica eh essa ae!!!!

vlw d mais!!!!

 

mas como to usando um for pra add o itens do datagrid, tenho q modificar o codigo, to tentando aki pra q de certo

mas de qualquer forma, eh isso ai, grande codigo

 

vlw d mais

flws

=]

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.