我有一个 jsf 页面,可以添加来自客户的订单。
一切正常,除了当我单击 commandLink 以显示 p:dialog 以添加新客户端时,“reste”输入文本上的更新停止工作(即使我关闭 p:dialog 而不添加新客户端):
客户名单:
<strong>Client :</strong><
<p:autoComplete
id="client"
value="#{venteSolaireBean.client}"
completeMethod="#{venteSolaireBean.autocompleteClient}"
var="item"
itemLabel="#{item.nom} #{item.prenom}"
itemValue="#{item}"
converter="#{venteSolaireBean.clientConverter}"
dropdown="true"
scrollHeight="200" >
</p:autoComplete>
链接到 ap:dialog 以添加新的 Cleint :
<p:commandLink onclick="dlgClient.show()" immediate="true">
<img src="images-main/add-icon.gif" border="0" alt="Add Client" class="img-action"/>
</p:commandLink>
三个具有 ajax 行为的 p:inputtext 项:
<strong>Montant :</strong>
<p:inputText value="#{venteSolaireBean.venteSolaire.montant}">
<p:ajax event="keyup" update="reste" listener="#{venteSolaireBean.calcul}" />
</p:inputText>
<strong>Avance :</strong></td>
<p:inputText value="#{venteSolaireBean.venteSolaire.avance}">
<p:ajax event="keyup" update="reste" listener="#{venteSolaireBean.calcul}" />
</p:inputText>
<strong>Reste :</strong></td>
<p:inputText id="reste" value="#{venteSolaireBean.venteSolaire.reste}">
</p:inputText>
与监听器一起执行的 venteSolaireBean.calcul 函数:
public void calcul() {
venteSolaire.setReste(venteSolaire.getMontant() - venteSolaire.getAvance());
}
我通过记录 calcul() 函数进行了检查,我确定它已被调用并且给 setReste() 的值是正确的。
我不明白为什么 inputtext 没有更新。
请帮忙。