我有一个Primefaces问题,我在寻找解决方案时遇到了很多麻烦。我没有运气搜索Primefaces文档。
我们正在使用Primefaces 6.0
我有两个<p:inputNumber/>
,我希望将两者的值相加并在用户输入时在屏幕上实时显示。我在每个inputNumber内的ajax调用是:
<p:ajax update="totalcount" listener="#{myBean.updateTotalCount()}"/>
一切几乎按预期工作。但是,只有在两个inputNumber框中丢失焦点时才会更新totalcount。
我希望在用户输入时触发总计。我试图查找Primefaces文档,我想像
<p:ajax event="change" update="totalcount" listener="#{myBean.updateTotalCount()}"/>
就足够了,但是ajax无法完全触发。
我不确定我是在寻找错误的地方,还是inputNumber与inputText不同,因此并非所有的ajax事件都可供我使用或者是什么。
任何建议?
编辑:添加了代码段:
XHTML:
<p:outputPanel id="totalcount">TOTAL COUNT : #{myBean.totalCount}%</p:outputPanel>
<p:inputNumber size="3" id="one" value="#{myBean.one}">
<p:ajax update="totalcount" listener="#{myBean.updateTotalCount()}"/>
</p:inputNumber>
<p:inputNumber size="3" id="two" value="#{myBean.two}">
<p:ajax update="totalcount" listener="#{myBean.updateTotalCount()}"/>
</p:inputNumber>
BEAN:
int one;
int two;
int totalcount;
...getter and setters here...
public void updateTotalCount() throws Exception {
total = one + two;
}
只有当两个inputNumber框失去焦点时才使用上面的代码来计算总数。如果我向两者添加event =“keyup”,则AJAX根本不再触发。添加流程属性似乎不会影响我的结果无论好坏。
答案 0 :(得分:2)
尝试使用atributes event =“keyup”和proccess =“@ this,secondInputNumberId”