Serverseitige Datentabelle Sortierung in Richfaces
Frage
Ich habe eine Datentabelle mit einer variablen Anzahl von Spalten und einer Daten scroller. Wie kann ich Server-Seite Sortierung aktivieren? Ich ziehe es, dass es durch den Benutzer ausgelöst werden Klicken auf die Spaltenüberschrift.
<rich:datascroller for="instanceList" actionListener="#{pageDataModel.pageChange}"/>
<rich:dataTable id="instanceList" rows="10" value="#{pageDataModel}"
var="fieldValues" rowKeyVar="rowKey">
<rich:columns value="#{pageDataModel.columnNames}" var="column" index="idx">
<f:facet name="header">
<h:outputText value="#{column}"/>
</f:facet>
<h:outputText value="#{classFieldValues[idx]}" />
</rich:columns>
</rich:dataTable>
Ich habe bereits ein Verfahren auf der Bohne, die Art für die Ausführung.
public void sort(int column)
Lösung
Ich landete es manuell zu tun. Ich Hinzufügen eines Support-Tag an den Kopftext-Tag, wie so.
<h:outputText value="#{column}">
<a4j:support event="onclick" action="#{pageDataModel.sort(idx)}"
eventsQueue="instancesQueue"
reRender="instanceList,instanceListScroller"/>
</h:outputText>
Um die Aufstiegs- / Abstiegs Pfeile zu bekommen, habe ich eine CSS-Klasse.
<h:outputText value="#{column}" styleClass="#{pageDataModel.getOrderClass(idx)}" >
<a4j:support event="onclick" action="#{pageDataModel.sort(idx)}"
eventsQueue="instancesQueue"
reRender="instanceList,instanceListScroller"/>
</h:outputText>
Andere Tipps
Es gibt eine recht elegante Lösung für diese Lösung hier:
http://livedemo.exadel.com /richfaces-demo/richfaces/sortingFeature.jsf?tab=ex-usage
Diese Demo vermeidet den Tag verwendet wird.
Ihr Datenmodell braucht "Veränderbare" Schnittstelle zu implementieren.
Die Datentabelle wird nennt es modify()
Methode ist serverseitig zu tun
Sortieren und Filtern.
Haben Sie einen Blick auf die „sortBy“ Eigenschaft „Rich: Spalten“, vielleicht ist es das, was Sie suchen. Richfaces Referenz
Cant Sie verwenden nur Collection.sort (), wenn Sie die Liste abrufen?