ExtendedDataTable se perdendo após evento ajax.

6 views
Skip to first unread message

Mariano

unread,
Sep 30, 2009, 12:07:28 PM9/30/09
to javasf: JavaServer Faces International Group
Estou trabalhando em uma aplicação que utiliza o RichFaces e venho
enfrentando um problema com o ExtendedDataTable.

Se utilizar qualquer componente que utlize o ajax (a4j), quando eu
mudar de página e esta tiver uma tabela do tipo ExtendedDataTable, a
mesma acaba se perdendo. Aparece aquele icone no centro da tabela que
fica girando e não mostra os dados.

Quando eu mudo de página sem fazer uso de eventos ajax funciona
normalmente.

Por causa desse problema estou limitado com o uso do ajax.

Se alguém já passou por isso e puder me ajudar desde já agradeço.

Danilo Magrini

unread,
Oct 1, 2009, 8:44:44 AM10/1/09
to jav...@googlegroups.com
2009/9/30 Mariano <gilmar_...@hotmail.com>:

> Por causa desse problema estou limitado com o uso do ajax.
>
> Se alguém já passou por isso e puder me ajudar desde já agradeço.

Cara eu passei por isso. O engraçado é que inicialmente eu achava que
era problema da requisição AJAX, mas depois vi que tinha browsers que
isso acontecia e tinha browsers que não. Não me lembro ao certo como
eu resolvi.. acho que eu consegui de duas formas. Pelo que me lembro,
uma foi "culpa" do facelets. Acho que era um include que eu dava que
acabava acontecendo isso. Daí eu tirei e funcionou. Mas como eu
precisava daquilo, me lembro que eu acabei tentando várias coisas como
por exemplo colocar um a4j:region ou um a4j:outputPanel com
ajaxRendered="true"... infelizmente não lembro ao certo. No entando eu
tive que reformular todo meu layout (mudanças no uso do Facelets) e
acabei não tendo mais esse problema. Desculpa não te ajudar mais
especificamente, mas eu realmente não me recordo a solução exata.

Thiago Gonçalves

unread,
Nov 20, 2009, 7:46:22 PM11/20/09
to javasf: JavaServer Faces Group
Mariano, estou com o mesmo problema. Voce conseguiu resolver?

Mariano

unread,
Nov 21, 2009, 3:23:16 PM11/21/09
to javasf: JavaServer Faces Group
Ai companheiro. Eu consegui sim. Agora vamos ver se o seu problema se
parece com o meu mesmo.

Na primeira página eu tinha uma extendedDatatable onde eu selecionava
registros para popular outra extended em uma segunda página. O
problema acontecia justamente depois de eu selecionar uma registro na
primeira página e chamar a segunda. A segunda página aparecia com o
Extended, com aquele ícone rodando no centro. Veja bem que o primeiro
extended renderiza normalmente com os registros setados através do
bean. Como se sabe, quando um extended é renderizado ele dá um get na
lista que está vinculado com ele.

Mas vamos lá.

A primeira coisa que fiz foi dexar tudo na mesma página. Ou seja eu
não chamo mais outra página, faço tudo na mesma página através do
ajax. Seto o valor novo nos componentes e depois dou um reRender
neles. O outro problema acontecia com a forma com eu capturava a linha
selecionada. Dá uma olhada com eu fazia e como façco agora:


Antigo:

public String acaoCarregarFormDistribuirCreditoParcialCliente() {

Iterator<Object> inter = this.selecaoForm2.getKeys();

while (inter.hasNext()) {

Object key = inter.next();

this.htmlExtendedDataTableForm2.setRowKey(key);

CelulaCredito celulaCredito = new CelulaCredito();

celulaCredito = (CelulaCredito) this.htmlExtendedDataTableForm2
.getRowData();



Nessa forma aqui eu setava o obejto ExtendedDataTable() com a chave e
depois dava um get neste objeto para caputar o objeto selecionado. Eu
acredito que o fato de eu
setar o objeto htmlExtendedDataTableForm2 que está ligado ao Extended
renderizado acaba excluindo a referência do mesmo. Você pode ver que
na forma atual que vem logo abaixo eu não uso o objeto
extendedDataTable para capturar o objeto selecionado.

}



Novo:

public void atualizarCamposCredorSiafi() {

Iterator<Object> inter = this.selecaoCredorSiafi.getKeys();

Object key = inter.next();

CredorSiafi credorSiafi = new CredorSiafi();

credorSiafi = (CredorSiafi) listaCredorSiafi.get(new Integer
(key.toString()));


Aqui eu uso apenas a chave (key) do registro que foi selecionado e
pego ele diretamente na lista original dando um get nessa lista e
passando essa chave.


}

Estou à disposição.





On 20 nov, 22:46, Thiago Gonçalves <thigo....@gmail.com> wrote:
> Mariano, estou com o mesmo problema. Voce conseguiu resolver?
>
> On 30 set, 14:07, Mariano <gilmar_mari...@hotmail.com> wrote:
>
>
>
> > Estou trabalhando em uma aplicação que utiliza o RichFaces e venho
> > enfrentando um problema com o ExtendedDataTable.
>
> >Seutilizar qualquer componente que utlize o ajax (a4j), quando eu
> > mudar de página e esta tiver uma tabela do tipo ExtendedDataTable, a
> > mesma acabaseperdendo. Aparece aquele icone no centro da tabela que
> > fica girando e não mostra os dados.
>
> > Quando eu mudo de página sem fazer uso de eventos ajax funciona
> > normalmente.
>
> > Por causa desse problema estou limitado com o uso do ajax.
>
> >Sealguém já passou por isso e puder me ajudar desde já agradeço.- Ocultar texto das mensagens anteriores -
>
> - Mostrar texto das mensagens anteriores -

thiago moraes

unread,
Nov 24, 2009, 1:26:56 PM11/24/09
to jav...@googlegroups.com
Olá,

Eu tenho um problema parecido.

Tenho um extendedDataTable na página. quando ocorre algum evento ajax e o painel no qual possui a table é reRendered , ela fica com o icone rodando no meio.
Tenho várias telas com funcionalidade parecida, mas em uma delas a tabela está ficando assim.

Neste caso específico clico em um botao e para excluir um registro e quando  a tela é atualizada a tabela fica zuada com o icone no meio.

já troquei para um post da pagina inteira e ela se perde do mesmo jeito. Mesmo se a exclusão não ocorre.

Ainda não descobri o o pruquê rs.


2009/11/21 Mariano <gilmar_...@hotmail.com>
--
Thiago Alves de Moraes
thiag...@gmail.com

Reply all
Reply to author
Forward
0 new messages