entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

0voto

Tengo un objeto test con sus preguntas y opciones de respuestas. Lo que quiero es mostrar pregunta por pregunta con sus respectivas respuestas pero de forma paginada y que se vaya recorriendo el test

0voto

Leonardo-Tadei comentado

Hola Jedaro,

se entiende qué es lo que querés hacer... cuál es tu consulta? En dónde te trabaste?

1voto

Jedaro comentado

Tengo un objeto java que me trae de la base de datos un conjunto de preguntas y cada pregunta tiene sus respectivas respùestas, lo que necesito hacer es mostrar pregunta por pregunta con sus respuestas pero de forma paginada
Pregunta 1
respuesta1
respuesta2
respuesta n

Ir pasando cada pregunta hasta terminar el objeto, pero que sea paginado con jquery u otra tecnologia

Gracias

Editado: pasado a comentario porque no es una respuesta a la pregunta.

2votos

elporfirio comentado

Pues muestranos por lo menos la estructura del Objeto que necesitas :)

Lo primero es separar las preguntas y las respuestas y crear el DOM para tu formulario, lo siguiente es despues dividir el numero de preguntas por div y por ultimo hacer un paginador.

Todo esto es muy sencillo con JavaScript

1voto

juansolo comentado

La paginación la puedes hacer desde el lado del servidor como del cliente. Si lo quieres hacer desde el lado del cliente tienes varios plugins de Jquery para ello. Muchos lo hacen a través de llamadas asíncronas.

Si lo quieres hacer manualmente, puedes crearte uno varios inputs de tipo hidden para almacenar toda aquella información que necesitas (por ejemplo, tendrás un input con un array de objetos en formato json con toda las preguntas y sus respuestas). Luego, mendiante javascript, cargas dicha información y la procesas con un bucle que ira de tal posición a otra del array en función de la posición seleccionada en el paginador.

0voto

Jedaro comentado

Hola que tal y gracias por las respuesta, la informacion la muestro en la jsp mediante etiquetas jstl ${test.preguntas}, ahora recorro este objeto con un <c:forEach y luego voy llamando las respuestas ${respuesta.respuestaNombre} con otro <c:forEach, asi me muestra todo el test con las preguntas y sus respuestas, pero quiero saber como pagino pregunta por pregunta

3 Respuestas

1voto

juansolo Puntos1840

Recientemente, he necesitado implementar un paginador. En stackoverflow encontré un algoritmo que me gusto mucho. Te lo pongo a continuación por si quieres implementarlo:

function printPageLinksFinalReally(num totalPages, num currentPage)
    if ( totalPages == 1 )  return
    if ( currentPage > 1 )  print "Prev"
    print "1"
    if ( currentPage > 2 ) {
        print "..."
        if ( currentPage == totalPages and totalPages > 3 )  print currentPage - 2
        print currentPage - 1
    }
    if ( currentPage != 1 and currentPage != totalPages )  print currentPage
    if ( currentPage < totalPages - 1 ) {
        print currentPage + 1
        if ( currentPage == 1 and totalPages > 3 ) print currentPage + 2
        print "..."
    }
    print totalPages
    if ( currentPage < totalPages )  print "Next"
endFunction

Esta función te genera: Prev 1 ... 3 [4] 5 ... N Next

Sólo necesitas el número total de páginas y la página actual que fácilmente lo puedes conseguir a partir de los datos que dispones.

1voto

Jedaro Puntos350

Hola pude resolver mi duda con el objeto PagedListHolder de Spring. La lista de preguntas la metí en este objeto y con pagedList.setPageSize(1) defino la paginacion , pregunta por pregunta se va mostrando. La navegacion la implemento con pagedList.nextPage() y/o pagedList.previousPage().

Gracias por sus respectivos comentarios y consejos

0voto

seniorit Puntos450

En mi experiencia...al menos en producción... cuando pases de los 2000 registros o más crearás un espacio en memoria innecesario que empezará a crear un cuello de botella en tu aplicación. Está tarea la realiza fácilmente la base de datos...solo pásale una variable con la cantidad de página y aumentas en 1. Y simplemente será 1 al 100, digamos, luego del 101 al 200 y así. Incluso podría ser dinámico para que decidas como páginar a conveniencia

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta