Estou utlizando p:dataTable com paginacao, para isso eu retorno uma lista de um dataModel, mas os links na linha que servem para alterar e excluir param de funcionar…
Quando o retorno é uma lista do objeto tudo funciona, mas quando é dataModel (necessario para paginação) para de funcionar…
<p:dataTable value="#{listaObjetosBean.dataModel}" var="objeto" paginator="true" rows="5" lazy="true">
<p:column headerText="Ações">
<p:commandLink id="ajax" update=":listagem" actionListener="#{objetoBean.remover(objeto)}" ajax="true">
<h:outputText value="Remover" />
</p:commandLink>
-
<p:commandLink value="Alterar" update=":insercao" >
<f:setPropertyActionListener value="#{objeto}" target="#{objetoBean.objeto}" />
</p:commandLink>
</p:column>
1 curtida
Poste o código do seu LazyDataModel
por favor.
Boa noite Igor, segue abaixo, obrigado por ajudar…
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import org.primefaces.model.LazyDataModel;
import org.primefaces.model.SortOrder;
import br.com.dao.DAO;
import br.com.modelo.Objeto;
public class DataModelObjetos extends LazyDataModel<Objeto> implements Serializable {
private static final long serialVersionUID = -6132969163305784568L;
public List<Objeto> load(int inicio, int quantidade, String campoOrdenacao, SortOrder sentidoOrdenacao, Map<String,Object> filtros) {
DAO<Objeto> dao = new DAO<Objeto>(Objeto.class);
return dao.listaTodosPaginada(inicio, quantidade);
}
}
DAO >>>
public List<T> listaTodosPaginada(int firstResult, int maxResults) {
EntityManager em = new JPAUtil().getEntityManager();
CriteriaQuery<T> query = em.getCriteriaBuilder().createQuery(classe);
query.select(query.from(classe));
List<T> lista = em.createQuery(query).setFirstResult(firstResult)
.setMaxResults(maxResults).getResultList();
em.close();
return lista;
}
BEAN >>>
private LazyDataModel<Objeto> dataModel;
public ListaObjetosBean() {
this.dataModel = new DataModelObjetos();
DAO<Objeto> dao = new DAO<Objeto>(Objeto.class);
this.dataModel.setRowCount(dao.contaTodos());
}
A paginação esta funcionando perfeitamente, so os links dentro da tabela que pararam de funcionar…
1 curtida
Legal
Onde estão as ações dos botões?
uai… o tutorial q segui não falava sobre isso, achei q como estava recuperando a lista de objetos direitinho deveria funfar tudo normal…
Nao sei se entendi a pergunta, mas o
<f:setPropertyActionListener value="#{objeto}" target="#{objetoBean.objeto}" />
faz a injeção direta no objeto do target…
Ja o remover esta num Bean porem eu coloquei breakpoint e ele nem entra…
a questao é quando a lista de iteração é de objetos normal tudo funfa, quando é dataModel nem commandButton nem commandlink funcionam…
Entendi…
Putz, então não sei o que pode ser cara…
Tenso, ainda não encontrei soluação pra isso…