我的PrimeFaces日历和ajax更新存在问题。
我有一个日历,当我在UI上更改日期时,我想刷新另一个组件。问题是我第一次更改日期时,另一个组件保持不变,但是当我第二次更改日期时,另一个组件会使用我期望的正确值进行更新。
这是我的表格:
<h:form>
<p:calendar
value="#{foo.dtValidade}">
<p:ajax update="criteriosDataGridTeste" event="dateSelect"
listener="#{foo.updateTeste}" />
</p:calendar>
<h:panelGroup id="criteriosDataGridTeste">
<td><h:selectOneMenu value="#{foo.idtpresult}">
<f:selectItem itemLabel="ok" itemValue="ok" />
<f:selectItem itemLabel="not ok" itemValue="not ok" />
</h:selectOneMenu></td>
</h:panelGroup>
</h:form>
我正在使用primefaces 3.0.1
通过调试我发现在设置值dtValidade
之前调用了侦听器。
但我认为应该是另一种方式。 为什么会这样?
我的bean的简化版本:
@ManagedBean(name = "foo")
@ViewScoped
public class Foooo {
private Date dtValidade;
private String idtpresult;
public Foooo() {
dtValidade = new Date();
idtpresult = "not ok";
}
public Date getDtValidade() {
return dtValidade;
}
public void setDtValidade(Date dt) {
this.dtValidade = dt;
}
public String getIdtpresult() {
return idtpresult;
}
public void setIdtpresult(String idtpresult) {
this.idtpresult = idtpresult;
}
public void updateTeste() {
Date now = new Date();
if (dtValidade.before(now)) {
idtpresult = "ok";
} else {
idtpresult = "not ok";
}
}
}
我错过了什么吗?
提前致谢!
答案 0 :(得分:0)
试试这个 在h:form中添加xhtml代码,其中您的日历是
<p:remoteCommand name="rc" update="criteriosDataGrid" >
和你的ajax
<p:ajax
event="dateSelect" listener="#{foo.updateCriteria}" oncomplete="rc"/>
如果你需要p:ajax 的其余属性,我不会兴奋地知道