Boa tarde.
Eu criei uma página com a seguinte estrutura:
<h:form id="nfeValidarForm">
...
<p:tabView id="nfeTabView">
...
<p:tab id="itensTab">
...
<p:dataTable id="nfeItensTable">
...
// Uma das colunas possui um CellEditor que ao editá-lo deveria atualizar uma outra coluna estática e os campos da linha dele que estão dentro do AccordionPanel
<p:rowExpansion>
...
<h:panelGroup id="nfeItemImpostosForm">
...
<p:accordionPanel>
...
<p:tab>
// Aqui estão os campos que são atualizados quando eu edito a coluna editável do DataTable. Eu seto os valores deles dentro do bean.
A coluna editável é um AutoComplete com o seguinte ajax:
<p:ajax event="itemSelect"
update="@([id$=nfeItemImpostosForm]) nfeNossoItemCfop"
listener="#{nfeValidarController.naturezaDeOperacaoSelected(p)}" />
Então ao editar o autocomplete, eu atualizo uma outra coluna estática que está fora do rowExpansion e do restante da estrutura e atualizo o panelGroup que contém o accordion e os campos que devem ser atualizados.
O problema é:
Quando eu faço essa edição na linha 2 de 10, por exemplo, eu estou usando o update: update="@([id$=nfeItemImpostosForm]) nfeNossoItemCfop" e quando eu atualizo o panelGroup nfeItemImpostosForm ele atualiza não só da linha que eu estou editando, mas de todas as linhas.
E os campos contidos nas outras linhas perdem o valor.
Há uma forma de eu atualizar apenas a linha que eu estou alterando?
E esse comportamento não tem um “padrão” as vezes logo na primeira edição ele faz isso, as vezes eu preciso editar 3 ou mais linhas para ocorrer.
Obrigado desde já.