2012-12-04 6 views
3

Ive a obtenu un Primefaces DataTable comme ceprimefaces jsf datatable p: colonnes

<p:dataTable 
    value="#{valueList.value}" 
    var="value" 
    selection="#{valueList.selected}" 
    id="measurementTable" 
    paginator="true" 
    rows="20" 
    rowsPerPageTemplate="20,25,30,35,40"/> 

et dynamiques colonnes avec ce

<p:columns 
    value="#{valueList.columns}" 
    var="column" 
    columnIndexVar="colIndex" 
/> 

cela fonctionne bien et mon Datatable semble bon, mais quand j'ajoute

sortBy="#{value.charge}" 

à p:columns et je cliquais sur la colonne pour trier le style CSS est destroyd et ive a un Liste avec mes données pas un DataTable, c'est très moche.


Mon code

<p:dataTable 
     value="#{measurementList.measurements}" 
     var="measurement" 
     selection="#{measurementList.selected}" 
     id="measurementTable" 
     paginator="true" 
     rows="20" 
     rowsPerPageTemplate="20,25,30,35,40" 
     rowKey="#{measurement.mdkFid}" 
     emptyMessage="#{measurementList.getCapString('no_records_found')}"> 

     <p:column selectionMode="multiple" style="width:18px" /> 

     <p:column> 
      <p:commandLink title="#{measurementList.getString('edit')}" update=":contentPanel"> 
       <h:outputText styleClass="ui-icon ui-icon-pencil" /> 
       <f:actionListener binding="#{measurementList.editSelected(measurement) }" /> 
       <f:actionListener binding="#{navigation.goTo('/xhtml/measurements/editMeasurement.xhtml') }" /> 
      </p:commandLink> 
     </p:column> 

     <p:columns 
      value="#{measurementList.columns}" 
      var="column" 
      columnIndexVar="colIndex" 
      styleClass="measurementListDatatableColumn" 
      sortBy="#{column.displayName}" 
      > 
      <f:facet name="header">#{column.displayName}</f:facet> 
       <p:column> 
        #{measurement[column.methodName]} 
       </p:column> 
     </p:columns> 

Répondre

3

Votre genre devrait ressembler à

sortBy="#{value[column.charge]}" 

Jetez un oeil à l'exemple de vitrine DataTable - Dynamic Columns

changement

<p:columns 
     value="#{measurementList.columns}" 
     var="column" 
     columnIndexVar="colIndex" 
     styleClass="measurementListDatatableColumn" 
     sortBy="#{column.displayName}" 
     > 
     <f:facet name="header">#{column.displayName}</f:facet> 
      <p:column> 
       #{measurement[column.methodName]} 
      </p:column> 
    </p:columns> 

dans

<p:columns 
     value="#{measurementList.columns}" 
     var="column" 
     columnIndexVar="colIndex" 
     styleClass="measurementListDatatableColumn" 
     sortBy="#{measurement[column.methodName]}" 
     > 
     <f:facet name="header"> 
      #{column.displayName} 
     </f:facet> 

     #{measurement[column.methodName]} 

    </p:columns> 

En général: la même expression EL qui est utilisé pour afficher les données de la colonne, doit être utilisé pour les sortBy

+0

merci pour vos anwers rapides mais cela est le même résultat. – user1740789

+0

avez-vous la propriété 'charge' + getter dans votre objet' column'? – Daniel

+0

yes ive a obtenu setter getter mais la valeur value contient un nom de méthode pour l'objet value – user1740789

Questions connexes