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"