0

это вопрос после этого один: PrimeFaces datatable.filter() and url parameterPrimeFaces Datatable фильтрации удалены при сортировке с о: форма includeRequestParams = «истина»

является использование PrimeFaces-5.1 и omnifaces-2.1 для визуализации DataTable с постраничной, фильтрации и сортировки при использовании параметров запроса. мой DataTable построен так:

<o:form includeRequestParams="true"> 
    <p:dataTable id="hostStateHistoryTable" value="#{HostHistoryBean.hostStateHistoryList}" var="status" widgetVar="statusTable" 
    filteredValue="#{HostHistoryBean.filteredHostStateHistoryList}" 
    rowStyleClass="#{status.state eq 0 ? 'up' : null} #{status.state eq 1 ? 'down' : null} #{status.state eq 2 ? 'unreachable' : null}" 
    rows="50" paginator="true" paginatorTemplate="{PageLinks} {RowsPerPageDropdown}" rowsPerPageTemplate="10,50,100"> 
     <p:column sortBy="#{status.stateTime}"> 
      <f:facet name="header">Start Time</f:facet> 
      <h:outputText id="Start" value="#{status.stateTime}"  /> 
     </p:column> 
     ... all columns 
    </p:dataTable> 
</o:form> 

Но Сортировка удаления PrimeFaces DataTable фильтрации. Я могу сортировать по отдельности и самостоятельно фильтровать без проблем, но когда я сортирую данные после фильтрации, удаляю фильтр. Повторное нажатие на тот же фильтр ничего не сделает, но фильтрация по другому значению покажет ожидаемый результат. Похоже, что форма o: повторно отправит запрос, включая атрибут, вместо использования datatable filterValue.

Edit: Я загрузил затмение проект MCVE здесь на основе: http://www.dacave.fr/stackoverflow/test.faces.rar

+0

действительно ли он меняет его на h: форму заставляет его снова работать? И, пожалуйста, создайте mcve, чтобы другие могли (попытаться) воспроизвести более легко. – Kukeltje

+0

сменив его на h: form делает каждую функциональность бесполезной из-за параметров запроса, которые не используются при вызове ajax. – golgoth

+0

Хорошо, позвольте мне переформулировать: делает обычную сортировку и фильтрацию, не используя вас параметр работает в версии PrimeFaces, которую вы используете? В противном случае мы могли бы преследовать хостов – Kukeltje

ответ

0

Ok так я узнал, что filteredValue была сброшена на каждом АЯКС вызова из-за @RequestScoped. Я думаю, что я вроде как смешивал вещи. Итак, я переключил все @ManagedBeans на @Named , после чего я создал новый @SessionScoped Bean с большинством атрибутов и i @inject @RequestScoped bean с атрибутами, основанными на запросе.

Теперь все работает так, как ожидалось

+1

Просмотр данных с областью можно лучше сохранить в представлении, но не в компоненте, включенном в сеанс. См. Также http://stackoverflow.com/questions/7031885/how-to-choose-the-right-bean-scope/ – BalusC

+0

спасибо действительно интересно :) Я переключился на ViewScope, и два набора данных находятся в более последовательном государство – golgoth

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

  • Нет связанных вопросов^_^