我有一个jsf页面,可以从客户端添加订单 一切正常,除非我单击commandLink以显示p:对话框以添加新客户端“reste”inputtext停止工作时的更新(即使我关闭p:对话框而不添加新客户端):
客户名单:
<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>
链接到p:对话框以添加新的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>
三个p:带有ajax行为的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没有更新 请帮忙。
答案 0 :(得分:1)
我认为验证存在一些问题。由于immediate=true
经常导致此类问题,并且您没有使用按钮上的任何主要功能来显示对话框,因此您应该使用纯HTML p:commandButton
替换button
以显示“添加客户端“-dialog。