w1l14n
Julho 3, 2009, 9:58am
#1
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>
w1l14n
Julho 3, 2009, 10:08am
#2
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
w1l14n
Julho 3, 2009, 1:11pm
#4
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?
w1l14n
Julho 3, 2009, 1:43pm
#6
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
w1l14n
Julho 3, 2009, 2:50pm
#8
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.
w1l14n
Julho 3, 2009, 3:14pm
#9
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?
w1l14n
Julho 6, 2009, 8:24am
#11
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.
w1l14n
Julho 6, 2009, 3:13pm
#13
Fiz o teste e não funcionou.
Já procurei em tudo que é lugar… mas sem sucesso.
Não sei para onde caminhar.
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
w1l14n
Julho 6, 2009, 3:34pm
#15
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.
w1l14n
Julho 7, 2009, 3:08pm
#16
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