2013-08-02 3 views
0

Je rencontrais des difficultés de tri DataTable dynamiquePrimefaces dataTable Le tri ne semble pas fonctionner

dataTable

<h:form prependId="false" id="Main_Form"> 
    <p:dataTable id="dataTable" var="c" value="#{databaseSearch.customerList}" 
     paginator="true" rows="10" paginatorAlwaysVisible="false" 
     paginatorTemplate="Page {CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} Rows per page {RowsPerPageDropdown}" 
     rowsPerPageTemplate="5,10,15,30" draggableColumns="True"> 
     <p:column sortBy="#{c.machine}" headerText="Machine"> 
      <h:outputText value="#{c.machine}" /> 
     </p:column> 
     <p:column sortBy="#{c.company}" headerText="Company"> 
      <h:outputText value="#{c.company}" /> 
     </p:column> 
     <p:column sortBy="#{c.contact}" headerText="Contact"> 
      <h:outputText value="#{c.contact}" /> 
     </p:column> 
     <p:column sortBy="#{c.phone}" headerText="Phone"> 
      <h:outputText value="#{c.phone}" /> 
     </p:column> 
     <p:column sortBy="#{c.email}" headerText="Email"> 
      <h:outputText value="#{c.email}" /> 
     </p:column> 
     <p:column exportable="false" headerText="Modify"> 
      <center> 
       <p:commandButton id="basic" value="Update" 
        action="#{updateEntry.setMachine(c.machine)}" 
        oncomplete="dlg1.show();" 
        styleClass="ui-Machinebutton" update=":Update_Entry"/> 
       <p:tooltip for="basic" value="Update/Delete Database Entry" 
        showEffect="fade" hideEffect="fade" /> 
      </center> 
     </p:column> 
    </p:dataTable> 
</h:form> 

J'utilise un haricot @SessionScopeddatabaseSearch.customerList interrogerait la base de données et alimenter le dataTable. Lorsque je clique sur le nom de la colonne à trier, la marque de la flèche de tri change mais le contenu de la table n'est pas trié.

J'utilise PF 3.4.2

+0

Cela ressemble à un double de http://stackoverflow.com/questions/5020725/sorting-is-not-working-in-datatable-in-primefaces – RJA

Répondre

1

Si vous interrogez votre base de données dans votre méthode de getCustomerList dans chaque demande cela ne fonctionnera pas. Vous pouvez essayer avec une variable locale

public class DatabaseSearch{ 

    private List<C> customerList; 

    public List<C> getCustomerList() { 
     if (customerList == null) 
      customerList = dao.getcustomerList(); 
     return customerList ; 
    } 
}