值更改侦听器在primefaces日历中不起作用 [英] Value Change listener not working in primefaces calendar
问题描述
我正在使用Primefaces 3.2和JSF 2.0
I am using primefaces 3.2 and JSF 2.0
我的情况是我的表单中有文件日期,上次日期和下一个日期. 当用户输入文件日期时,我需要更新bean中的文件日期值,以便该值可以用作属性提示的最后一个日期中的最小日期,因此可以在下一个日期选择中使用.
My scenario is I have file date, last date and next date in my form. When user enters file date I need to update file date value in bean so it's value can be used as minimum date in last date of attribute mindate and so in next date selection.
根据我的知识价值更改侦听器可以在提交表单时执行,因此我无法使用它.我已经使用过 p:ajax .但是我仍然无法设置文件日期.由于未设置文件日期,因此用户可以选择文件日期之前的上一个日期和下一个日期.
As per my knowledge value change listener can execute at form submission so I can not use it. I have used p:ajax. But still I am not able to set file date. As file date is not set it allows user to select last date and next date before date of file date.
caseMaster.xhtml
<p:calendar value="#{caseUitility.caseMaster.fileDate}" id="fileDate" effect="fadeIn" pattern="dd/MM/yyyy" readOnlyInputText="true">
<p:ajax event="change" listener="#{caseUitility.dateChange}"/>
</p:calendar>
<p:calendar value="#{caseUitility.caseMaster.lastDate}" required="true" id="lastDate" effect="fadeIn" pattern="dd/MM/yyyy" readOnlyInputText="true" mindate="#{caseUitility.caseMaster.fileDate}" >
</p:calendar>
CaseUitility.java
public void dateChange(ActionEvent ae) {
System.out.println("File Date: " + caseMaster.getFileDate());
System.out.println("Hello... I am in DateChange");
}
能指导我在这里做错什么吗?
can any guide me what am I doing wrong here?
推荐答案
在PrimeFaces的最新版本中,应使用 SelectEvent
,请参见以下代码段
In more recent versions of PrimeFaces, SelectEvent
should be usedsee the following code snippet
<p:calendar id="event" value="#{calendarView.date4}">
<p:ajax event="dateSelect" listener="#{calendarView.onDateSelect}" update="msgs" />
</p:calendar>
public void onDateSelect(SelectEvent event) {
FacesContext facesContext = FacesContext.getCurrentInstance();
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Date Selected", format.format(event.getObject())));
}
在较早的素数版本中,使用 DateSelectEvent
<p:ajax event="dateSelect" listener="#{caseUitility.dateChange}"/>
public void dateChange(DateSelectEvent event) {
Date date = event.getDate();
System.out.println("File Date: " + date);
System.out.println("Hello... I am in DateChange");
}
这篇关于值更改侦听器在primefaces日历中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!