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)
War es hilfreich?

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?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top