java – 如何更新只是特定的单元格中的表达式dataTable

前端之家收集整理的这篇文章主要介绍了java – 如何更新只是特定的单元格中的表达式dataTable前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在创建一个充满了输入字段的动态数据.有时,当用户在某些输入中插入值时,应更新特定的单元格,并且只能更新该单元格.我以为这可能很简单,但没有使它工作.
我想要更新的单元格是“valor total”,这个单元格应当更新时,其他两个单元格的值更改:

EDITED

我已经尝试f:ajax与完整的ID,并得到“组件与ID:lancamentoNF:popupLancamentoNF:tabelaItensNF:0:valorTotalItem未找到”.更改为p:ajax,没有错误发生,但它不更新!

  1. <h:panelGroup id="painelItensNF" layout="block" styleClass="hrgi-div-form aba-lancamento-nf clearfix" style="overflow:auto;">
  2. <h:panelGroup layout="block" style="width: 1700px;">
  3. <p:dataTable id="tabelaItensNF" value="#{modeloTabelaDinamicaItemNF.itens}" var="itemEmbrulhado" styleClass="tabelaDinamica" height="174" style="width: 100%;" rowIndexVar="indice">
  4. ... (some columns)
  5. <p:column style="width: 5%"
  6. headerText="quantidade">
  7. <hrgi:spinner id="quantidadeItem"
  8. value="#{itemEmbrulhado.item.produto.detalheTributavel.quantidade}"
  9. dinheiro="false"
  10. fator="#{itemEmbrulhado.item.produto.detalheTributavel.unidadeFracionada?0.01:1}"
  11. local="pt-BR" min="0.00" width="70">
  12. <p:ajax event="change"
  13. update="lancamentoNF:popupLancamentoNF:tabelaItensNF:#{indice}:valorTotalItem"
  14. listener="#{controladorPopupLancamentoNF.calcularValorTotalItem(itemEmbrulhado)}" global="false" />
  15. <f:convertNumber
  16. maxFractionDigits="#{itemEmbrulhado.item.produto.detalheTributavel.unidadeFracionada?2:0}"
  17. minFractionDigits="#{itemEmbrulhado.item.produto.detalheTributavel.unidadeFracionada?2:0}"
  18. locale="pt-BR"
  19. for="quantidadeItem"/>
  20. </hrgi:spinner>
  21. </p:column>
  22. <p:column style="width: 5%"
  23. headerText="valor unitario">
  24. <hrgi:spinner id="valorUnitarioItem"
  25. value="#{itemEmbrulhado.item.produto.detalheTributavel.valorUnitario}"
  26. dinheiro="true" fator="0.01" local="pt-BR" min="0.00" width="70">
  27. <p:ajax event="change"
  28. update="lancamentoNF:popupLancamentoNF:tabelaItensNF:#{indice}:valorTotalItem"
  29. listener="#{controladorPopupLancamentoNF.calcularValorTotalItem(itemEmbrulhado)}" global="false"/>
  30. <f:convertNumber type="currency" currencyCode="BRL" currencySymbol="R$"
  31. maxFractionDigits="10" minFractionDigits="2" locale="#{cc.attrs.local}"
  32. for="valorUnitarioItem"/>
  33. </hrgi:spinner>
  34. </p:column>
  35. <p:column style="width: 3%"
  36. headerText="valor total">
  37. <h:outputText id="valorTotalItem" value="#{itemEmbrulhado.item.produto.valorTotal}">
  38. <f:convertNumber type="currency" currencyCode="BRL" currencySymbol="R$"
  39. maxFractionDigits="2" minFractionDigits="2" locale="pt-BR"
  40. for="valorUnitarioItem"/>
  41. </h:outputText>
  42. </p:column>
  43. ... (more columns)
  44. </p:dataTable>
  45. </h:panelGroup>
  46. </h:panelGroup>

当我用完整的ID更新panelGroup“painelItensNF”时,它的工作原理,但重点丢失,用户应该找到他正在继续工作的输入…

解决方法

只需使用update =“valorTotalItem”.这是相对于当前行已经.

所以,替换

  1. <p:ajax ... update="lancamentoNF:popupLancamentoNF:tabelaItensNF:#{indice}:valorTotalItem" />

通过

  1. <p:ajax ... update="valorTotalItem" />

猜你在找的Java相关文章