2010-05-10 22 views
5

Me gustaría recibir sus comentarios y sugerencias sobre esto. Estoy haciendo la paginación de una página en jsf. La tabla de datos está vinculada a una propiedad Backing Bean a través del atributo "binding". Tengo 2 variables booleanas para determinar si se renderizan los botones 'Anterior' y 'Siguiente', que se muestran debajo de la tabla de datos. Cuando se hace clic en el botón "Anterior" o "Siguiente", en el bean de respaldo obtengo la propiedad de tabla de datos enlazada y obtengo el atributo "primera" y "filas" de la tabla de datos y cambio en consecuencia. Muestro 5 filas en la página. Comente y sugiera si hay alguna manera mejor. Por cierto, no estoy interesado en ninguna biblioteca JSF Component, sino solo en el kit de renderizado html core.paginación en jsf

public String goNext() 
{ 

    UIData htdbl = getBrowseResultsHTMLDataTable1(); 

    setShowPrev(true); 
    //set Rows "0" or "5" 
    if(getDisplayResults().size() - (htdbl.getFirst() +5)>5) 
    { 
     htdbl.setRows(5);//display 5 rows 
    }else if (getDisplayResults().size() - (htdbl.getFirst() +5)<=5) { 
     htdbl.setRows(0);//display all rows (which are less than 5) 
     setShowNext(false); 
    } 
    //set First 
    htdbl.setFirst(htdbl.getFirst()+5); 
    return "success"; 
} 

public String goPrev() 
{ 

    setShowNext(true); 
    UIData htdbl = getBrowseResultsHTMLDataTable1(); 

    //set First 
    htdbl.setFirst(htdbl.getFirst()-5); 

    if(htdbl.getFirst()==0) 
    { 
     setShowPrev(false); 
    } 

    //set Rows - always display 5 
    htdbl.setRows(5);//display 5 rows 

    return "success"; 
} 

Respuesta

1

Por favor, comentar y sugerir si hay alguna manera mejor.

Bueno, eso no da mucho para responder. Al menos no es lo que "yo" haría, si lo estás pidiendo. Larga historia corta: Effective datatable paging and sorting. Solo necesita Tomahawk (enfréntelo, tiene sus ventajas). Pero si ya está en JSF2 + Facelets en lugar de JSF1 + JSP, entonces de hecho también puede usar ui:repeat y @ViewScoped en lugar de t:dataList y t:saveState.