Seguinte, tenho uma tabela que me trás alguns tipos de taxas e posso decidir se mantenho o valor da taxa ou o altero.
Essa tabela pode aumentar de tamanho conforme forem adicionadas, via sistema, mais algumas taxas. Por isso tenho a necessidade do componente de paginação.
Então meu cenário é: Um rich:dataTable com um h:inputText dentro de uma de suas colunas e um rich:datascroller para a paginação.
Meu problema: Se eu alterar o valor de alguma das taxas (Cada taxa é uma linha da tabela) em um página e depois paginar para outra página todas as minhas alterações serão perdidas. Ou seja, quando tentar voltar para a página em que havia feito outras alterações, os valores que eu alterei voltam para os mesmos valores de quando a tabela foi carregada.
Por exemplo, Estou na primeira página da tabela e tenho 3 linhas:
| 1 | Cost 1 | 3.5 |
| 1 | Cost 2 | 5.6 |
| 1 | Cost 3 | 2.5 | <- esse é o input com o valor que veio carregado (2.5). Se eu aterá-lo para 1.0, por exemplo, e passar para a próxima página… Quando retornar para a primeira página esse valor volta a ser 2.5… Quero manter o valor 1.0!
O que tenho que fazer para manter os valores alterados no inputText após a paginação?
Bom, não sei se consegui ser suficientemente claro mas espero que alguém possa me ajudar… Desde já obrigado!
<rich:dataTable id="grossMarginPersistTableID" width="100%"
var="listaGM" columnClasses="left" align="left"
styleClass="lista" rows="#{costingPhaseBean.maxPagina}"
value="#{costingPhaseBean.phaseDTOPersist.grossMarginDTOs}"
onRowMouseOver="this.style.backgroundColor='#9db7dd'"
onRowMouseOut="this.style.backgroundColor='#FFFFFF'"
style="cursor:pointer">
<rich:column>
<f:facet name="header">
<h:outputText value="Cost Type" />
</f:facet>
<h:outputText value="#{listaGM.costType.name}" />
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Description" />
</f:facet>
<h:outputText value="#{listaGM.costType.description}" />
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Gross Margin %" />
</f:facet>
<c:choose>
<c:when test="#{costingPhaseBean.fixMargin}">
<h:outputText value="#{listaGM.valorGM}">
<f:convertNumber maxFractionDigits="2" />
</h:outputText>
</c:when>
<c:otherwise>
<!-- Este é o campo input que quero manter o valor atualizado durante as páginações -->
<h:inputText id="inGM" value="#{listaGM.valorGM}">
<rich:jQuery selector="#inGM"
query="maskMoney({allowZero:true, decimal:'.', thousands:''})"
timing="onload" />
</h:inputText>
</c:otherwise>
</c:choose>
</rich:column>
<br />
</rich:dataTable>
<rich:datascroller for="grossMarginPersistTableID"
align="center" reRender="grossMarginPersistTableID"
rendered="#{(not costingPhaseBean.phaseDTOPersist.grossMarginDTOs.isEmpty())
and not (costingPhaseBean.phaseDTOPersist.grossMarginDTOs.size() le
costingPhaseBean.maxPagina)}" />
maxPagina = 10
fixMargin = false