Ordenando lista

5 respostas
lgr

Boa tarde,
Preciso criar uma lista em que, quando clicado na coluna escolhida aconteça uma ordenação de todos registros por estã coluna.
Estou tentando criar uma tag lib em que passando por parâmetro um List possa fazer essas ordenações.
Alguém tem uma idéia?referência?etc?

grato

5 Respostas

nbluis

Esses dados vem do banco???
se vem é mais facil tu usar o order by da consulta.;.;…

até…

marciocamurati

Cara na revista Java Magazine dessa semana tem uma matéria só sobre isso, ordenação de dados dentro de collection e inclusive tem um exmplo web fazendo a ordenação pelo clique na coluna.

Vale apena tu dar uma olhada, vai te ajudar muito !

[]s

V

lgr procura por DisplayTag creio que vai resolver seus problemas…

abraço !

quikkoo

acho melhor carregar a lista do banco usando o ‘order by’ com a opcao padrao de ordenacao

depois q a tebla estiver preenchida, para cada cabeçalho vc associa uma chamada a um metodo d ordenaçao q trabalha com o campo selecionado indicado pelo cabeçalho

vc pode usar a mesma funcao pra ordenacao, mudando apenas a chamada a comparacao, algo do tipo

int compara(Objeto obj1, Objeto obj2, byte metodo)
{
	switch (metodo)
	{
		case 0:
			if (obj1.getValor() == obj2. getValor()) return 0;
			else if (obj1.getValor() >= obj2. getValor()) return 1;
			else return -1;
			break;

		case 1:
			if (obj1.getNome() == obj2. getNome()) return 0;
			else if (obj1.getNome() >= obj2. getNome()) return 1;
			else return -1;
			break;
		... e assim por diante
	}
}

void quicksort(... /* parametros*/, byte metodo)
{
	faz o quicksort normalmente, porem no momento de comparar vc usa o metodo 'compara' q vc escrever
	... 
}

é só um esboço, uma ideia inicial, talvez lhe ajude a pensar um uma solucao mais pratico e/ou mais eficiente

flw, t+

lgr

Vou dar uma olhada na revista.
Quanto a displayTag quem dera se eu pudesse uar aqui na empresa.aqui precisa estar homologado,entende?tenho meio que criar uma displayTag.
obrigado a todos

[]

Criado 27 de fevereiro de 2007
Ultima resposta 28 de fev. de 2007
Respostas 5
Participantes 5