RE:Como se hace Paginacion en Jsp
Publicado por
Jim (1 intervención) el 25/07/2007 20:18:43
La verdad, ke hasta ahora no he encontrado un método práctico para hacer la paginacion. YO lo he conseguido por mis propios medios.
Trabajo con SQL Server 2000, asi ke ahi va mi propuesta:
Voy a hacer una consulta muy simple, pueden agregarle mas parametros para hacerla, las compleja, por ejemplo: busquedas y todo eso
creo un stored procedure
CREATE PROCEDURE miCOnsulta
@FIlasPorPagina INT
@Página INT
AS
DECLARE @TotalFilas INT
SELECT 'pagFila' = IDENTITY(INT,1,1),
* INTO #Tempo FROM miTabla
SET @TotalFilas = @@ROWCOUNT
-- hasta aqui ya tenemos todo la consulta dentro de una tabla temporal
-- se ha agregaado un columna 'pagFila' ke es un id unico por cada registro (no tiene ke ver con el id de mi tabla)
-- Bueno, si tenemos 300 registros en la tabla #Tempo, entonces
-- el primer registro, en la columna pagFila, tendrá el valor 1
-- el ultimo registro, en la columna pagFila, tendrá el valor 300, asi de simple
-- Ahora, para hacer la paginacion, simplemente volvemos a hacer una consulta sobre la tabla temporal, pero discriminando solo aquellos ke nos interesan: los que estan en el intervalo de los parámetros:
SELECT *, 'pagTotalFilas' = @pagTotalFilas
FROM #Tempo
WHERE (pagFila BETWEEN @pagPagina * @pagFilasPorPagina - @pagFilasPorPagina + 1 AND @pagPagina * @pagFilasPorPagina)
-- Hemos agregado la columna pagTotalFilas, éste valor va ser siempre 300 (depende de la cantidad total de filas)
Podemos llamar al sp asi: "miCOnsulta 20, 3"
esto nos dará un resultado de 20 filas, desde el pagFila=31 hasta el pagFila=40, nos dará todas las columnas ke hemos solicitado, mas una columna al final que repetida su valor (300 o lo ke sea) en todas las filas.
Ke para ké sirve este famoso 300?
dije ke es el total de filas que votaria tu resultado sin pagina
Asi, cuando cargues la informacion en su pagina web, sabrás con una simple division cuántas paginas podrás mostrar: 300/20, claro, encuentra el módulo 300%20 para los casis 305%20 para ke muestre 51 paginas.
Ojala me hayan entendido
Es simple, trata de verlo bien
No es necesario hacer BEANs o cosas tan complejas
Supongo ke el Oracle tiene algo asi como lo ke yo uso en el SQLServer
Suerte