Сортировка DataTable на стороне сервера в RichFaces - PullRequest
8 голосов
/ 25 сентября 2008

У меня есть таблица данных с переменным количеством столбцов и скроллер данных. Как включить сортировку на стороне сервера? Я предпочитаю, чтобы пользователь запускал заголовок столбца.

<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>

У меня уже есть метод bean для выполнения сортировки.

public void sort(int column)

Ответы [ 5 ]

6 голосов
/ 26 сентября 2008

Я закончил делать это вручную. Я добавляю тег поддержки в текстовый тег заголовка, вот так.

<h:outputText value="#{column}">
  <a4j:support event="onclick" action="#{pageDataModel.sort(idx)}"
               eventsQueue="instancesQueue"
               reRender="instanceList,instanceListScroller"/>
</h:outputText>

Чтобы получить восходящие / нисходящие стрелки, я добавил класс css.

<h:outputText value="#{column}" styleClass="#{pageDataModel.getOrderClass(idx)}" >
  <a4j:support event="onclick" action="#{pageDataModel.sort(idx)}"
               eventsQueue="instancesQueue"
               reRender="instanceList,instanceListScroller"/>
</h:outputText>
1 голос
/ 15 июля 2010

Здесь есть довольно элегантное решение:

http://livedemo.exadel.com/richfaces-demo/richfaces/sortingFeature.jsf?tab=ex-usage

Эта демонстрация избегает использования тега.

1 голос
/ 14 мая 2010

В вашей модели данных должен быть реализован интерфейс "Modifiable".

DataTable будет вызывать это modify() метод, чтобы сделать на стороне сервера сортировка и фильтрация.

0 голосов
/ 14 ноября 2008

Не можете ли вы просто использовать Collection.sort () при получении списка?

0 голосов
/ 22 октября 2008

Посмотрите на свойство "sortBy" rich: columns, возможно, это то, что вы ищете Richfaces Reference

...