2010-05-10 13 views
5

Ich möchte Ihre Kommentare und Anregungen zu diesem Thema. Ich mache die Seitenumbruch für eine Seite in jsf. Die Datentabelle ist über das Attribut "binding" an eine Backing Bean-Eigenschaft gebunden. Ich habe 2 boolesche Variablen, um zu bestimmen, ob 'Prev' und 'Next' Button gerendert werden sollen - welcher unterhalb der Datentabelle angezeigt wird. Wenn entweder die Schaltfläche "Zurück" oder "Weiter" angeklickt wird, bekomme ich in der Backing-Bean die gebundene Eigenschaft dataTable, wodurch ich das Attribut "first" und "rows" der Datentabelle erhalte und entsprechend ändere. Ich zeige 5 Zeilen auf der Seite an. Bitte kommentieren Sie und schlagen Sie vor, ob es bessere Möglichkeiten gibt. Übrigens bin ich nicht an irgendwelchen JSF-Komponenten-Bibliotheken interessiert, sondern halte mich nur an den Core-HTML-Render-Kit.Paginierung in 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"; 
} 

Antwort

1

Bitte kommentieren und wenn es bessere Möglichkeiten vorschlagen.

Nun, das gibt nicht viel zu beantworten. Es ist zumindest nicht die Art, wie "ich" es tun würde, wenn du darum bittest. Lange Geschichte kurz: Effective datatable paging and sorting. Sie brauchen nur Tomahawk (stellen Sie es gegenüber, es hat seine Vorteile). Aber wenn Sie bereits JSF2 + Facelets anstelle von JSF1 + JSP verwenden, können Sie auch ui:repeat und @ViewScoped anstelle von t:dataList und t:saveState verwenden.