值更改侦听器在primefaces日历中不起作用 [英] Value Change listener not working in primefaces calendar

查看:111
本文介绍了值更改侦听器在primefaces日历中不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆