Olá amigos, estou com problemas para fazer o sortBy e o filterBy da p:dataTable funcionarem. Estou usando páginação por demanda. Eles simplesmente nao fazem nenhuma ação. Alguém tem alguma idéia do que posso estar fazendo de errado?
XHTML:
<p:dataTableid="dtCarreta"value="#{carretaMBean.lazyModel}"lazy="true"var="item"paginator="true"rows="5"emptyMessage="#{msgs.dtVazia}"rowsPerPageTemplate="5,10,15"selection="#{carretaMBean.selectedCarretas}"rowStyleClass="#{empty rowIx or rowIx mod 2 ne 0 ? 'even-row' : 'odd-row'}"rowIndexVar="rowIx"rowKey="#{item.codigocarreta}"><f:facetname="header"><p:commandButtonid="cbtGravar"value="#{msgs.cbtGravar}"update="frmCadastrarCarreta:pgSalvar"oncomplete="multiCarDialog.show()"image="ui-icon-disk"><f:setPropertyActionListenervalue="#{true}"target="#{carretaMBean.cbtAlterar}"/><f:setPropertyActionListenervalue="#{false}"target="#{carretaMBean.cbtSalvar}"/><f:setPropertyActionListenervalue="#{false}"target="#{carretaMBean.cbtLimpar}"/><f:setPropertyActionListenervalue="#{false}"target="#{carretaMBean.dSalvar}"/></p:commandButton><p:commandButtonid="cbtEditar"value="#{msgs.cbtAlterar}"update="frmCadastrarCarreta:pgSalvar, frmCadastrarCarreta:msgs"oncomplete="editar(xhr, status, args)"image="ui-icon-disk"action="#{carretaMBean.editar}"><f:setPropertyActionListenervalue="#{false}"target="#{carretaMBean.cbtAlterar}"/><f:setPropertyActionListenervalue="#{true}"target="#{carretaMBean.cbtSalvar}"/><f:setPropertyActionListenervalue="#{true}"target="#{carretaMBean.cbtLimpar}"/><f:setPropertyActionListenervalue="#{false}"target="#{carretaMBean.dSalvar}"/></p:commandButton><p:commandButtonid="btnExcluirCarreta"value="#{msgs.cbtExcluirCarreta}"image="ui-icon ui-icon-close"oncomplete="excluir(xhr, status, args)"action="#{carretaMBean.excluir}"update="frmCadastrarCarreta:msgs"><f:setPropertyActionListenervalue="#{item}"target="#{carretaMBean.selectedCarreta}"/><f:setPropertyActionListenervalue="#{true}"target="#{carretaMBean.dSalvar}"/></p:commandButton></f:facet><p:columnselectionMode="multiple"/><p:columnid="clnCodCarreta"style="width: 50px"sortBy="#{item.codigocarreta}"filterBy="#{item.codigocarreta}"><f:facetname="header"><h:outputTextid="optCodigoCarreta"value="#{msgs.optTableCodigoCarreta}"/></f:facet><h:outputTextvalue="#{item.codigocarreta}"/></p:column><p:columnid="clnDescricaoCarreta"sortBy="#{item.descricao}"filterBy="#{item.descricao}"><f:facetname="header"><h:outputTextid="optDescricaoCarreta"value="#{msgs.optTableDescricaoCarreta}"/></f:facet><h:outputTextvalue="#{item.descricao}"/></p:column><p:columnid="clnPlaca"sortBy="#{item.placa}"filterBy="#{item.placa}"><f:facetname="header"><h:outputTextvalue="#{msgs.optTablePlacaCarreta}"/></f:facet><h:outputTextvalue="#{item.placa}"/></p:column><p:columnid="clnAno"sortBy="#{item.ano}"filterBy="#{item.ano}"><f:facetname="header"><h:outputTextvalue="#{msgs.optTableAnoCarreta}"/></f:facet><h:outputTextvalue="#{item.ano}"/></p:column><p:columnid="clnCor"sortBy="#{item.cor}"filterBy="#{item.cor}"><f:facetname="header"><h:outputTextvalue="#{msgs.optTableCorCarreta}"/></f:facet><h:outputTextvalue="#{item.cor}"/></p:column><p:columnid="clnCarroceira"sortBy="#{item.carroceria.descricao}"filterBy="#{item.carroceria.descricao}"><f:facetname="header"><h:outputTextvalue="#{msgs.optTableCarroceriaCarreta}"/></f:facet><h:outputTextvalue="#{item.carroceria.descricao}"/></p:column><f:facetname="footer"><h:outputTextvalue="#{msgs.contaRegistros} #{carretaMBean.lazyModel.rowCount}"/></f:facet></p:dataTable>
publicList<Carreta>getListaPaginado(intinicio,intquantidade){
Sessionses=getSession();Queryquery=ses.createQuery("SELECT e FROM Carreta e").setFirstResult(inicio).setMaxResults(quantidade);List<Carreta>lista=(List<Carreta>)query.list();returnlista;}
Na sua query você não teria que adicionar o sortOrder?
Estou com um problema parecido, só que com o filtro por string. Estou usando Criteria para fazer a query, segue o link que eu estou usando de exemplo:
C
clever
Nao sei, mas no meu caso como ficaria?
C
clever
No exemplo que vc passou o sortOrder no DAO é um boolean, e lá no bean ele é um SortOrder que extende de uma classe do PrimeFaces 3, como faço pra resolver isso?
F
fernandosc
Esse SortOrder é um enum, é so você fazer uma comparação do tipo:
Cara parece que vai até no DAO mas nao renderiza a página. Aquela classe Entry é importada do java.util.Map.Entry certo? No bean nao muda nada? O meu ta assim: