Complementando o post anterior, como solicitado em um comentário.
O rich:dataTable e o rich:datascroller deverão ficar da seguinte forma na pagina.
<rich:dataTable id=”TabelaUsuarios” value=”#{usuarioBean.dataModel}”
binding=”#{usuarioBean.dataTable}” var=”usuario” rows=”10″>
<f:facet name=”header” />
<f:facet name=”footer”>
<rich:datascroller for=”TabelaUsuarios” stepControls=”hide” align=”center” />
</f:facet>
</rich:dataTable>
Caso seja necessário guardar o estado da tabela, poderá ser utilizado o tomahawk para isso. Basta fazer:
<t:saveState value=”#{usuarioBean.dataTable}”></t:saveState>
Rodrigo
julho 2, 2009 at 5:04 pm
Achei bem interessante a serie de posts sobre paginação por demanda.
Também estou tento os mesmos problemas de performance que aconteceu com você.
Implementei o código descrito nesses artigos. Funcionou quase perfeitamente.
O único problema encontrado até agora foi a ordenação. Quando o dataTable vai ordenar os resultados, ele repete as linhas da tabelas. Sabe alguma solução para este problema?
Alex Egidio
setembro 11, 2009 at 11:50 am
Parabéns pelo excelente post, estava faltando algo assim em nossa língua mãe.
Você chegou a deparar com este problema :
java.io.NotSerializableException: org.richfaces.component.html.HtmlDataTable
Pesquisando na internet encontrei uma solução que mandar colocar um modificar “transient” na variável, mas quando faço isso as coisas pioram veja o erro:
java.lang.NullPointerException – /WEB-INF/componentes/pesquisa.xhtml @73,85 value=”#{pesquisaBean.dataModel}”: Error reading ‘dataModel’ on type
Atenciosamente
Marcus Mazzo
setembro 1, 2010 at 11:38 pm
Já tentou alterar a versão do richfaces? existia uma versão que estava toda bugada.
Alberto
maio 13, 2010 at 6:37 pm
Boa tarde, estou implementando a paginação sob demanda e não está funcionando, já copiei tudo o que tinha no site mas ainda nada, poderia me ajudar por favor ?
Quando clico na segunda página o datascroller não traz novos registros, é como se ficasse sempre na primeira página…
[]‘s e Obrigado
Diogo Souza
setembro 9, 2010 at 6:06 pm
Estou realmente impressionado com este material!!
Nunca encontrei algo tão bem elaborado (nem em inglês) sobre paginação em JSF como estes artigos. Você realmente está de parabéns e não é só porque me ajudou muito numa implementação recente e semelhante a esta, mas também por ser de qualidade e auxílio a muitos outros…
Meu sinceros parabéns!!
Sucesso!
Kirmaier Andrade
dezembro 14, 2010 at 7:56 pm
Muito bom o post, está de parabéns!
Estou com uma dificuldade que o meu datascroller não exibe a quantidade de páginas e nem funciona as opções de proxima, anterior, primeira e ultima. Faz a pesquisa delimitando corretamente mas não consigo ir paginando por exemplo de 10 em 10 – 20 em 20..paginas 1 de 100.
Obrigado e mais uma vez, parabéns!
Marcus Mazzo
outubro 8, 2011 at 11:05 am
Você colocou o atributo “rows” no datatable?
Quanto as funcionalidades, não saberia o que esta ocorrendo.
joao
maio 5, 2011 at 5:13 pm
Muito bom tuto.
Obrigado por compartilhar conhecimento
Marlesson
maio 16, 2011 at 8:22 pm
Gostei muito da implementação da paginação.
Encontrei um problema e gostaria de saber se alguem teve o mesmo problema.
Como a chamada da função de pesquisa(Select na base de dados) fica direto no get associado no DataTable (getDataModel). Devido ao siclo do JSF, em varios momentos a consulta é executada várias vezes sem necessidade.
Como exemplo a consulta na base é executada várias vezes ao mudar a página (usar o rich:datascroller), 2 vezes com os parámetros antigos da página e a ultima com os parámetros certos da próxima página.
OBS: A implementação que fiz não utiliza do Hibernate, e utiliza Bean de request.
Alguma sugestão? Posso enviar os código.
Fico no aguardo.
Marcus Mazzo
outubro 8, 2011 at 11:02 am
Marlesson,
Acredito que o problema de ser renderizado várias vezes é porque o dataScroller esta dentro do datatable e a cada linha ele executa o get novamente. Estarei disponibilizando, em breve, uma nova forma de fazer paginação em demanda sem ficar preso a qualquer framework (primefaces, richfaces, etc) utilizando apenas objetos do proprio java.
Abraços!!!
Rogerio Martins
junho 13, 2011 at 9:47 pm
parabéns pelo artigo, porém poderia disponibilizar o código de exemplo para melhor compeensão..
Andrei
julho 18, 2011 at 4:37 am
Poderia me passar o projeto?
Tem como usar seu codigo usando o <c:foreach ?
Marcus Mazzo
outubro 8, 2011 at 11:06 am
No caso esta implementação é especifica para o richfaces, então não teria como utilizar c:foreach, mas estarei disponibilizando uma implementação que não ficará preso a nenhum framework de tela.
Abraços!!!
Vinicius Ramaciotti
agosto 29, 2011 at 5:06 pm
Antes de mais nada, reforcçarei o que o Diogo Souza disse:
Também estou mto impressionado com o material, achei bárbaro! Parabéns.
Mas agora, como nem tudo são flores…rsrsrs…gostaria de saber sobre um problema que tem ocorrido comigo, que é o seguinte:
Fiz toda a implementação das classes faladas e ocorreu que minha Rich:DataTable não é renderizada novamente com os dados corretos, se eu tento via ajax, mas qdo tento normalmente ela renderiza, debuguei o sistema mas nao acho a solução, Será que você poderia me ajudar com isso?
Abraços e fique com DEUS!
Marcus Mazzo
outubro 8, 2011 at 11:10 am
Não entendi bem, por exemplo, eu utilizo ajax em alguns projetos e o que é preciso fazer é renderizar novamente a tabela, o problema ocorre na renderização da tabela, ainda não entendi o porque, dessa forma eu coloco um panelgroup e a tabela dentro e mando renderizar o panelgroup ai a tabela renderiza normalmente, é como se fosse preciso dar um render no pai da tabela.