JSF PrimeFace:p 重复 ajax 更新,类不起作用



totalListSumA 是 Java 内部的 ArrayList。在调试模式下,数组列表工作得很好。此列表中分配的新值。

当用户在框中输入新值时,程序将重新计算新总和并显示在如下所示的代码中。

<p:inputNumber 
class="caseType1"
rendered="#{inputFormTemplateView.allowEdit}" 
inputStyle="text-align: center"                             
minValue="0"
maxValue="99999999"                             
decimalPlaces="0"
thousandSeparator=""
emptyValue=""
value="#{inputFormView.selectedInputFormDetail.data[dataField]}" >
<p:ajax update="dataField, #{inputForm4_1View.getColTotal()}"/>
<p:ajax update="@(.totalRow3)"></p:ajax>
</p:inputNumber> 

<tr>
<td align='center'>Total</td>
<p:repeat var="item" value="#{inputForm4_1View.totalListSumA}" class="totalRow3">
<td class="cell_cal" style='text-align:center;' >
<h:outputLabel 
class="totalRow3"
value="#{item}" />
</td>
</p:repeat> 
</tr>

我试过了

  • h:panelGroup id='...'
  • ui:repeat id='....">

在 p:repeat 中,该值仍然保持不变。我可以尝试获取并在 totalListSumA 中显示最新值的任何方法?

这是错误的

<p:ajax update="dataField, #{inputForm4_1View.getColTotal()}"/>
<p:ajax update="@(.totalRow3)"></p:ajax>

1(Ajax应该有event="change"或其他事件,但最错误的事情是在update中调用bean方法。

2( 使用listener="#{inputForm4_1View.getColTotal()}"

3( 不要使用 2 个相同的 ajaxes。

溶液:

<p:ajax event="change" update="dataField, @(.totalRow3)" listener="#{inputForm4_1View.getColTotal()}"/>

如果这不能解决您的问题,请尝试更新表单,例如update="@form"update="yourFormId"

最新更新