2009-07-28 5 views
1

Ich verwende rich:dataTable mit rich:dataTableScroller. Und ich möchte nicht alle meine Daten aus der DB laden, wenn ich die Tabelle initialisiere, weil ich sehr viele Datensätze habe. Ich möchte, dass rich:dataTableScroller zeigen Sie mir echte Seite zählen, aber Seite nur laden, wenn ich einschalte. Ich finde eine Lösung here Aber ich möchte rich:dataTable und rich:dataTableScroller verwenden, und schreiben Sie nicht meine eigenen Komponenten. Haben Sie jemanden Ideen?Faule Daten laden mit Rich: DataTable und Rich: DataTableScroller

protected List<T> loadData(int offset, int limit, List<Order> orders)

Antwort

2

Sie sollten erstellen eine benutzerdefinierte org.richfaces.model.DataProvider und in getItemsByRange sollten Sie die begrenzten Daten holen:

-1

Sie können Ihre eigenen Datenmodell als Kind von Richfaces ExtendedDataModel, die Methode hat schreiben. Sie sollten dann ein ExtendedTableDataModel, indem Sie Ihre individuellen DataProvider, konstruieren und dieses Modell verwenden in Ihrem <rich:dataTable> - value="#{myBean.myExtendedDataModel}"

+0

gibt es keine solche Methode – Bozho

+0

Er meinte, dass "Ihr eigenes" Datamodell diese Methode haben sollte. Ähnlich wie 'ScrollableTableDataModel'. – BalusC

+0

und wenn er nur diese Methode definiert und niemand sie anruft, wäre das nutzlos. Außerdem ist das letzte Argument in 'ScrollableTableDataModel' der SortOrder, keine Liste – Bozho

0

Sie können Ihren eigenen „PagedDataModel“ erstellen, die die Daten nur tatsächlich zurückgibt, die Sie sehen in der Seite angezeigt werden .

Ich habe ein Beispiel dafür gefunden here.