Primefaces “sortBy=” ne fonctionne pas
Je suis du développement d'une application à l'aide de Primefaces + JSF. Mon tableau de données fonctionne, mais a un problème de tri sortBy=
, j'ai essayé sortBy="#{pc.rota}"
mais il ne fonctionne pas trop:
Tableau de données montrent toutes les lignes, le problème je pense est sortBy=
ou mon soutien bean.
page.xhtml
<h:body>
<h:form id="pcEmulation">
<p:dataTable id="dataTablePCEMulation" var="pc" value="#{pCEmulationBean.allPCEmulation}"
rows="10"
rowsPerPageTemplate="5,30,50,100,200,300"
emptyMessage="Não foi encontrado"
>
<f:facet name="header">
PC Emulation Web
</f:facet>
<p:column headerText="PC - TX OLO's" filterValue="#{pc.filtpcn}" filterMatchMode="contains" filterBy="#{pc.filtpcn}" >
<h:outputText value="#{pc.filtpcn}" />
</p:column>
<p:column headerText="Rota" sortBy="rota" >
<h:outputText value="#{pc.rota}" />
</p:column>
<p:column headerText="Origem">
<h:outputText value="#{pc.origem}" />
</p:column>
<p:column headerText="Antigo">
<h:outputText value="#{pc.epcn}" />
</p:column>
<p:column headerText="Destino">
<h:outputText value="#{pc.destino}" />
</p:column>
<p:column headerText="PC-Novo">
<h:outputText value="#{pc.realpcn}" />
</p:column>
</p:dataTable>
<p:blockUI block="dataTablePCEMulation" trigger="dataTablePCEMulation">
LOADING<br />
<p:graphicImage value="/images/loading.gif"/><br />
<p:graphicImage value="/images/tim-banner2.png" width="100px" height="45px"/>
</p:blockUI>
</h:form>
</h:body>
Backing bean:
@ManagedBean
//@ViewScoped
@SessionScoped
public class PCEmulationBean {
public List<PCEmulation> allPCEmulation;
public List<PCEmulation> getAllPCEmulation() {
PCEmulationDAO dao = new PCEmulationDAO();
try {
allPCEmulation = dao.getAll();
} catch (ClassNotFoundException | SQLException e) {
System.out.println("Problema no metodo list : " + e);
}
return allPCEmulation;
}
}
- Pas liés : JSF Appels getters plusieurs fois, de sorte que vous ne devrait pas contenir toutes les bases de données d'accès. il devrait ressembler à excatly comme ceci : public X getY() { return y; } stackoverflow.com/questions/2090033/...
Vous devez vous connecter pour publier un commentaire.
Pour le genre de travail que vous devez retourner la même liste d'objet à chaque fois avec de la lecture, où, dans votre cas, vous êtes de retour d'une nouvelle liste à partir de la dao à chaque fois. Donc, vous ne devriez chercher une nouvelle liste si la liste est déjà nul. Le code à l'intérieur de votre getter devrait être comme ci-dessous.
Autant que je sache, sortBy attribut de la Datatable est appliquée uniquement pour les Types de Données Primitifs et de la Corde. Si rota est un objet, vous devez créer la méthode de tri par vous-même. Alternative, à l'aide de sortBy="#{pc.rota.un truc}" qui contiennent des Types de Données Primitifs ou de la Chaîne de tri.