2013-07-16 1 views
3

Я пытаюсь получить сортировку и фильтрацию, сохраненные в ходе опроса, обновляющего таблицу. К сожалению, я не смог этого сделать.В полях dataTable Сортировка и фильтр не сохраняются с опросом

Когда dataTable обновляется каждые две секунды или любой интервал, путем опроса, значение фильтра удаляется, а столбец при нажатии на него сортирует только по возрастанию, независимо от того, сколько раз щелчка заголовка столбца. Кроме того, стрелка сортировки всегда отображается как «нисходящая».

Если я что-то пропустил, я думаю, что это ошибка в dataTable.

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

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
      <html xmlns="http://www.w3.org/1999/xhtml" 
       xmlns:ui="http://java.sun.com/jsf/facelets" 
       xmlns:h="http://java.sun.com/jsf/html" 
       xmlns:f="http://java.sun.com/jsf/core" 
       xmlns:p="http://primefaces.prime.com.tr/ui"> 

      <f:view contentType="text/html"> 

       <h:head> 
       </h:head> 

       <h:body> 

        <h:form id="pollForm"> 
        <p:poll id="poll" widgetVar="pollVar" interval="2" 
         listener="#{tableBean.update}" async="true" autoStart="true" /> 
        </h:form> 

        <h:form> 

        <p:outputPanel autoUpdate="true"> 
         <p:dataTable var="car" value="#{tableBean.carsSmall}"> 
          <f:facet name="header"> 
           Ajax Sorting 
          </f:facet> 

          <p:column sortBy="#{car.model}"> 
           <f:facet name="header"> 
           <h:outputText value="Model" /> 
           </f:facet> 
           <h:outputText value="#{car.model}" /> 
          </p:column> 

          <p:column sortBy="#{car.year}"> 
           <f:facet name="header"> 
           <h:outputText value="Year" /> 
           </f:facet> 
           <h:outputText value="#{car.year}" /> 
          </p:column> 

          <p:column sortBy="#{car.manufacturer}" 
           filterBy="#{car.manufacturer}"> 
           <f:facet name="header"> 
           <h:outputText value="Manufacturer" /> 
           </f:facet> 
           <h:outputText value="#{car.manufacturer}" /> 
          </p:column> 

          <p:column sortBy="#{car.color}"> 
           <f:facet name="header"> 
           <h:outputText value="Color" /> 
           </f:facet> 
           <h:outputText value="#{car.color}" /> 
          </p:column> 
         </p:dataTable> 
        </p:outputPanel> 
        </h:form> 

       </h:body> 

      </f:view> 
      </html> 

ответ

0

Можете ли вы попытаться дать идентификатор вашей базе данных и затем вызвать dataTableId.filter? Меня устраивает.

<p:poll id="pollAutoUpdate" interval="5" oncomplete="entityTable.filter()" autoStart="false" stop="true" widgetVar="myPoll" /> 
Смежные вопросы