需要帮助理解<p:inputnumber>与<p:ajax>

时间:2017-05-12 19:48:14

标签: primefaces

我有一个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根本不再触发。添加流程属性似乎不会影响我的结果无论好坏。

1 个答案:

答案 0 :(得分:2)

尝试使用atributes event =“keyup”和proccess =“@ this,secondInputNumberId”

相关问题