Estou iniciando o uso com o Primefaces e estou configurando o Datatable paginado e vi uma solução com o LazyDataModel. Eu até consigo consultar os dados no banco mas a tabela não é carregada.
Passei por esse mesmo problema, infelizmente essa última versão do primefaces (2.2.1 e também a 3.0M1) possui um bug no lazy load, com a primeira página.
Você pode conferir aqui: http://code.google.com/p/primefaces/issues/detail?id=1526
O bug acontece na primeira página, tenta dá um sort, ou ir pra outra página que verá o resultado.
andersonfs
Putz… e no meu caso nem os botões da paginão estão aparecendo. Dai não consigo nem ir para a próxima página.
Qual foi a solução de paginação que você usou então? Podes falar?
Te agradeço.
Abs
A
ayslanms
Vi que está faltando o total de registros da tabela:
Sendo assim a tabela vai calcular a quantidade de páginas. Em relação ao bug, não resolvi, estou esperando a correção deles que está prevista ainda para essa 3.0. Mas como eu te disse, ao paginar ou realizar um “sort” os registros aparecem.
A
ayslanms
Outra coisa você disse: “remote é um EJB” e está sendo chamado no construtor, isso teoricamente não funciona, já que no construtor não vai acontecer a injeção de dependência do EJB, então remote estaria null. Uma boa prática é criar um método anotado com @PostConstruct (javax.annotation.PostConstruct, que diz que sempre será chamado ao construir o bean).
Em partes… os registros foram carregados na tabela, mas os botões de paginação não foram. Os seus ai aparecem?
Abraços.
A
ayslanms
Aparecem sim, tenta debugar para ver se o dao trás a quantidade de os resultados esperados.
andersonfs
ayslanms
Ele está trazendo os registros certos, eu passei o start e o pageSize para o EJB que executa a consulta, e lá eu fiz da seguinte forma:
No EJB
publicList<Classe>findAllClasses(intpageSize,intfirst){
finalStringBuildersql=newStringBuilder("Select c from Classe c order by codigo");finalQueryquery=entityManager.createQuery(sql.toString());query.setFirstResult(first);query.setMaxResults(pageSize);finalList<Classe>lista=query.getResultList();returnlista;
}
Ele trouxe dex registros, pois foi esse o tamnho da página.
Mas não exibe os botões de paginação.
Para exibir basta fazer da seguinte forma não é mesmo: