Pergunta

Estou usando Richfaces 3.3.1 com JSF Re 1.2 e Facelets. Eu tenho um problema estranho com a geração HTML de um rico: Datatable conectado a um rico: DataScroller.

<h:form id="br">
...
 <rich:datascroller id="scrt" page="#{searchBookings.page}" stepControls="hide" renderIfSinglePage="false" for="bt" align="left" reRender="ttips,bt"/>
 <rich:dataTable id="bt" rows="20" rendered="#{!empty searchBookings.bookings}" value="#{searchBookings.bookings}" var="row" binding="#{searchBookings.table}">
....

Na primeira vez que a página carrega, tudo funciona bem. Se eu visitar a mesma página pela segunda vez, alterando as páginas através do DataScroller não atualiza mais o DataTable. Acertar o botão de atualização resolve o problema.

Adicionar A4J: Log revelou este aviso:

 warn[14:50:07,259]: Node for replace by response with id br:bt not found in document

De fato, ao inspecionar o HTML, a página "correta" se parece com a seguinte:

  <table class="dr-table rich-table " id="br:bt" ....

Enquanto a página "ruim" se parece com a seguinte:

  <table class="dr-table rich-table " id="br:bt:0" ....

Observe o ": 0" no final do ID, ele não deve estar lá. O que poderia estar causando isso?

Obrigado por qualquer entrada.

Foi útil?

Solução

Ok, encontrou. Em algum lugar no feijão de apoio eu fiz

tabela.setRowIndex (0);

O que eu queria fazer era

tabela.setFirst (0);

O primeiro aparentemente faz com que o gerador assuma que ele está gerando linhas, então ele retorna um ID da linha, anexando ": 0". Não tenho idéia de como isso afeta apenas a segunda vez que a página é gerada. Espero que isso seja útil para outra pessoa uma vez.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top