Los Foros
http://foros.espaciolatino.com/

Como puedo mostrar los objetos de un array en columnas
http://foros.espaciolatino.com/viewtopic.php?f=2&t=767
Página 2 de 2

Autor:  radomir [ 23 Dic 2013 11:42 ]
Asunto:  Re: Como puedo mostrar los objetos de un array en columnas

He modificado el código y en unos casos lo hace bien, pero hay otros en los que no.
Te voy a poner unos ejemplos en los que no lo hace bien
Las fotos en total son 10
Si yo le pongo 4 filas y 2 columnas, en la 1ª página que aparecen 8 fotos ya aparece el botón deshabilitado, así que no puedes pasar a la 2ª página.
Si pones por ejemplo, 4 filas y 1 columna en la 1ª página también aparece el botón deshabilitado.
Si pongo 1 fila y 2 columnas el botón cuando llega al final y ha mostrado todas las fotos no se deshabilita y sigue pasando páginas, en blanco.

En el resto de combinaciones de filas y columnas si lo hace bien

Saludos

Autor:  editor [ 23 Dic 2013 18:22 ]
Asunto:  Re: Como puedo mostrar los objetos de un array en columnas

Hola
Podrías usar un contador de páginas y comparar la página actual con la página final. El número de páginas lo podrías calcular como longitud de la matriz dividido por (col*filas) redondeado por encima (Math.ceil). O bien, determinar si estás en la última fila, esta solución

var filasTotal= Math.floor(array.length/col)+1;
var filasRest = filasTotal - (pointer+counter);
return (filasRest>0) ;

Como ves calcula el número de filas totales, y calcula el número de filas que quedan por mostrar, si es más de 0 habilita next y si no lo deshabilita
(Entiendo que pointer mantiene el número de la fila actual y counter es el número de filas por página)

Saludos

Autor:  radomir [ 27 Dic 2013 22:46 ]
Asunto:  Re: Como puedo mostrar los objetos de un array en columnas

Hola, con el código tal cual me has puesto, hay algunos casos en los que no funciona bien, así que lo he modificado y parece que ahora funciona perfectamente.
Lo que he hecho ha sido quitar el +1 y sustituir el Math.floor por el Math.ceil y como te he comentado así funciona perfectamente.
Código:
 
var filasTotal= Math.ceil(array.length/col);
var filasRest = filasTotal - (pointer+counter);
return (filasRest>0)

Autor:  radomir [ 27 Dic 2013 23:24 ]
Asunto:  Re: Como puedo mostrar los objetos de un array en columnas

Una vez que parece solucionado el problema del botón siguiente, me queda por resolver el problema del botón última, para ir directamente a la última página.
Código:
   this.last = function()
    {
        var filasTotal = Math.ceil(array.length/col)+1;
        pointer = (filasTotal - counter);      
        self.show();
    }

Autor:  radomir [ 05 Ene 2014 01:17 ]
Asunto:  Re: Como puedo mostrar los objetos de un array en columnas

He conseguido que me funcione el botón de ir a la última página, pero utilizando 4 if según la combinación entre filas y columnas le digo que me haga una cosa u otra y funciona, pero no es ni muy ortodoxo ni es lo más apropiado, así que, si se te ocurre alguna idea para hacerlo de otra manera te estaría muy agradecido.
Saludos

Página 2 de 2 Todos los horarios son UTC + 1 hora
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/