2016-01-04 5 views
1

У меня есть р: DataTable, который хранит результаты обработанного вида, и я выполнить следующие действия: значения формыPrimefaces DataTable сортировки после фильтрации

  1. заливки.
  2. Отправить.
  3. Таблица данных заполнена - фильтр на любой колонке.
  4. Измените значения формы.
  5. Отправить.
  6. Таблица данных заполнена новыми результатами.
  7. Отображается сортировка по любому столбцу - отфильтрованные результаты из # 3.

У меня есть сортировщик для отфильтрованных значений, но я ничего не делаю с ним в фасоли. В представлении я вызываю actionListener, который передает dataTable в файл primefaces.components.datatable.DataTable, а затем вызывает resetValue() на нем (см. Фрагмент кода ниже), прежде чем обрабатывать форму.

Я пробовал несколько способов сброса, очистки и обновления dataTable, но я не могу обойти вышеупомянутую проблему. Просто для справки, это мой р: DataTable тег:

<p:dataTable 
      id="resultsDataTable" 
      rendered="#{entityReportBean.isResultsPopulated}" 
      var="change" 
      value="#{entityReportBean.entityChangeDto}" 
      styleClass="resultsPanel" 
      rows="100" 
      paginator="true" 
      paginatorPosition="top" 
      paginatorTemplate="#{PreviousPageLink} Previous {CurrentPageReport} Next {NextPageLink}" 
      filterEvent="enter" 
      filteredValue="#{entityReportBean.filteredResults}" > 

и это ActionListener:

public void onSubmit() { 
      FacesContext context = FacesContext.getCurrentInstance(); 
      DataTable resultsTable = (DataTable) context.getViewRoot().findComponent("results:resultsDataTable"); 
      resultsTable.resetValue(); 
       ... 

Я довольно новыми для JSF/Primefaces, поэтому могут быть некоторые основные операции я не осознавая. Какие-либо предложения?

ответ

1

Итак, я понял, что не было смысла пытаться что-либо сделать в моем ActionListener, поскольку это не вызывается при сортировке. Поэтому я добавил событие ajax «sort» в dataTable и добавил слушателю resultsTable.updateValue(entityChangeDto);. Теперь все хорошо.

Смежные вопросы