Paginação rich:datascroller - Estou apanhando e nada de funcionar

PessoALL,

Estou querendo ativar os links para o usuário avançar e retroceder na paginação.

Até conseguir fazer a paginação, só que fica só na primeira página.

Meu código está assim:

<rich:panel rendered="#{consultaBean.consulta != null}"> <rich:dataTable id="lstConsulta" value="#{consultaBean.consulta}" styleClass="tabela_contorno" var="lstConsulta" border="1" rendered="#{consultaBean.consulta != null}" rows="11"> <t:column width="10"> <center> <f:facet name="header"> <b><h:outputText value="Telefone"/></b> </f:facet> <h:outputText value="#{lstConsulta.telefone}"/> </center> </t:column> <t:column width="160"> <center> <f:facet name="header"> <b><h:outputText value="Secretaria"/></b> </f:facet> </center> <h:outputText value="#{lstConsulta.secretaria}"/> </t:column> <t:column width="190"> <center> <f:facet name="header"> <b><h:outputText value="Departamento"/></b> </f:facet> </center> <h:outputText value="#{lstConsulta.departamentos}"/> </t:column> <t:column width="190"> <center> <f:facet name="header"> <b><h:outputText value="Funcionário"/></b> </f:facet> </center> <h:outputText value="#{lstConsulta.funcionarios}"/> </t:column> <f:facet name="footer"> <rich:datascroller id="scroll" for="lstConsulta" maxPages="20"> </rich:datascroller> </f:facet> </rich:dataTable> </rich:panel>

Informações adicionais:

Meu bean é do tipo request e o retorno do método “consultaBean.consulta” é um ArrayList

Amigo a unica coisa q eu vi q ta diferente do q eu uso é q vc colocou o rich:datascroller dentro do rich:datatable e eu uso ele fora do rich.

E outra coisa amigo cuidado com nomes iguais heim vc colocou o id do datatable como “lstConsulta”

e no var vc ta utilizando o mesmo nome não é aconselhável no mais parece ta de boa

Pois é.

Já procurei em um monte de lugar e nada.

Meu resultado fica assim:

<< << << 1 2 >> >> >>

Só que nada ativo.

Com isso, mostra apenas a primeira página.

vc ja tirou o seu scroller de dentro do rich:datatable igual te falei?

Tire e não mudou nada, alterei o nome do var da tabela.

Me falaram sobre o keepalive… só que não entendi muito.

Outra coisa tbem que eu pretei atenção agora q vc falou q seu bean é de request, deve ser isso mesmo
pois o codigo jsf esta de boa

Seguinte quando vc clica para ir para a pagina 2 ele faz uma requisição ajax e logo destroi o seu bean e cria outro

sobre o keepAlive é isso mesmo vc tera q usar ele so q como eu utilizo o spring ele funfa direito com ele logo nao funciona, e não tenho um bom conhecimento sobre ele tbem

Leonardo obrigado pela ajuda.

Só que eu não consigo clicar para ir na página 2… este é o meu problema.

A informação é exibida na tela, mas não é um link… apenas um texto comum.

Depois da sua ajuda, meu código está desta forma e ainda não funciona! :evil:

<f:subview id="telefones"> <a4j:keepAlive ajaxOnly="true" beanName="consultaBean"/> <a4j:outputPanel id="exibeConsulta" ajaxRendered="true" rendered="#{not empty consultaBean.consulta}"> <rich:dataTable id="lstConsulta" value="#{consultaBean.consulta}" styleClass="tabela_contorno" var="consulta" border="1" rendered="#{not empty consultaBean.consulta}" rows="11"> <t:column width="10"> <center> <f:facet name="header"> <b><h:outputText value="Telefone"/></b> </f:facet> <h:outputText value="#{consulta.telefone}"/> </center> </t:column> <t:column width="160"> <center> <f:facet name="header"> <b><h:outputText value="Secretaria"/></b> </f:facet> </center> <h:outputText value="#{consulta.secretaria}"/> </t:column> <t:column width="190"> <center> <f:facet name="header"> <b><h:outputText value="Departamento"/></b> </f:facet> </center> <h:outputText value="#{consulta.departamentos}"/> </t:column> <t:column width="190"> <center> <f:facet name="header"> <b><h:outputText value="Funcionário"/></b> </f:facet> </center> <h:outputText value="#{consulta.funcionarios}"/> </t:column> </rich:dataTable> <rich:datascroller id="scroll" for="lstConsulta" maxPages="20" rendered="lstConsulta" styleClass="fonte"/> </a4j:outputPanel> </f:subview>

voce já tentou criar seu bean com o escopo de sessão?

Side… fiz o teste e tbm não funcionou.

amigo, tente o seguinte:

na propriedade reRender do rich:datascroller, coloque o id do seu outputpanel.

[]s

obs: não retire o keepAlive do seu código.

Fiz o teste e não funcionou.

Já procurei em tudo que é lugar… mas sem sucesso.

Não sei para onde caminhar. :frowning:

ai vai um trecho de código pra vc ver:

[code]
<a4j:keepAlive beanName=“plantaBean” />
<rich:panel id=“pnlPlantas” styleClass=“pnlDados”>
<f:facet name=“header”> <h:outputText value=“Plantas Cadastradas” /> </f:facet>
<rich:dataTable id=“dtPlantas” value="#{plantaBean.plantasList}"
var=“planta” rows=“10”>
<rich:column sortBy="#{planta.nome}">
<f:facet name=“header”> <h:outputText value=“Nome da Planta” /> </f:facet>
<h:outputText value="#{planta.nome}" />
</rich:column>
<rich:column sortBy="#{planta.cerca.nome}" >
<f:facet name=“header”> <h:outputText value=“Nome da Cerca” /> </f:facet>
<h:outputText value="#{planta.cerca.nome}" />
</rich:column>
rich:column
<f:facet name=“header”> <h:outputText value=“Editar” /> </f:facet>
a4j:region
<a4j:commandLink actionListener="#{plantaBean.prepareEditPlanta}"
reRender=“pnlCadastro”>
<h:graphicImage value="/img/edit.png" alt=“Editar.”
styleClass=“imgBorder” />
<f:param id=“idPlantaEdicao” name=“idPlantaEdicao”
value="#{planta.id}" />
</a4j:commandLink>
<h:inputHidden value="#{plantaBean.edicao}"
id=“hiddenIdParametro” />
</a4j:region>
</rich:column>
rich:column
<f:facet name=“header”> <h:outputText value=“Excluir” /> </f:facet>
a4j:region
<a4j:commandLink actionListener="#{plantaBean.deletePlanta}"
reRender=“pnlCadastro, pnlPlantas”
onclick=“javascript:if(!confirm(‘Deseja realmente excluir a Planta?’))return false;”>
<h:graphicImage value="/img/delete.gif" alt=“Excluir.”
styleClass=“imgBorder” />
<f:param id=“idPlantaExclusao” name=“idPlantaExclusao”
value="#{planta.id}" />
</a4j:commandLink>

					</a4j:region>
				</rich:column>
				<f:facet name="footer">
					<rich:datascroller renderIfSinglePage="true" reRender="pnlPlantas" ajaxSingle="true"/>
				</f:facet>
			</rich:dataTable>
		</rich:panel>[/code]

quando vc clica na segunda pagina chega a fazer a requisição? eu vejo isso pelo firegub do firefox, se a requisição eh feita, mas a tela nao atualiza, eh falta de dar reRender em alguma coisa, ou talvez o scroller está validando algum form e não está terminando a requisição certa…

[]s

O meu problema é que nem os links das próximas páginas são ativados.

Ele gera todas as páginas, por exemplo:

<< << << 1 2 >> >> >>

Aparece do jeito que está aí acima… só que não está em forma de link.

Pelo que já vi é o seguinte, ele gera todas as páginas só que não consigo ir para a página seguinte.

Estou apanhando feio para fazer funcionar.

Alguém poderia me ajudar???

Já li um monte de informação na internet e nada. Já peguei exemplos que “funcionam”, com implementações iguais a minha e nada de funcionar.

VLW galera.

[quote=w1l14n]Estou apanhando feio para fazer funcionar.

Alguém poderia me ajudar???

Já li um monte de informação na internet e nada. Já peguei exemplos que “funcionam”, com implementações iguais a minha e nada de funcionar.

VLW galera.[/quote]

Oi.

Acho que esta faltando isso no seu codigo:

no seu jsp:

        </rich:dataTable>
        <br>
        <rich:datascroller for="tabela" maxPages="20" [color=red]binding="#{seubean.scroller}[/color]"/>

no seubean (.java)

public class seubean {

private UIDatascroller scroller;

/*********************************************************/
/*      Sets e gets                                      */
/*********************************************************/

public UIDatascroller getScroller() 
{
    return scroller;
}

public void setScroller(UIDatascroller scroller)
{
this.scroller = scroller;
}

w1l14n você conseguiu resolver seu problema?
To sofrendo com isso também
Se tiver solucionado teria como vc postar aki pra eu ver?
vlw

no web.xml setar facelets.BUILD_BEFORE_RESTORE, como false.

na verdade consegui resolver o problema configurando o .page.xml da minha view hehe
mas obrigado pela alternativa amigo
abraços \o