【问题标题】:How to submit manual entered date in primefaces calendar?如何在primefaces日历中提交手动输入的日期?
【发布时间】:2016-09-07 11:12:52
【问题描述】:

我有一个表单,上面有两个 primefaces 日历输入元素和一个数据表。日历项用于将表中显示的结果过滤为从到值。因此,我使用了一个 p:ajax 'dateSelect' 事件,当鼠标悬停在弹出窗口上进行操作时,该事件运行良好。但是,当我使用键盘在输入字段中手动更改日期时,不会触发任何更改事件。当我使用第二个 p:ajax 事件进行模糊或更改时,我无法获得新值。

    <p:calendar id="startDate"
                value="#{filterStart}" 
                required="true"
                showOn="button" 
                maxdate="#{filterEnd}"
                >
        <p:ajax event="dateSelect"
                listener="#{listController.onFilterStartChanged}"
                update="filterTbl, endDate" />
        <p:ajax event="change" 
                listener="#{listController.onFilterStartBlured}"
                update="filterTbl, endDate"
                process="@this"
                partialSubmit="true" immediate="true"  />                                                                       
</p:calendar>

在对小狗进行选择时调用 onFilterStartChanged 方法,可以读取新值:

public void onFilterStartChanged(final SelectEvent event)  {...}

但将焦点移动到另一个组件时不会触发键盘更改

public void onFilterStartBlured(final AjaxBehaviorEvent event)  {
    Date newDate = (Date)((Calendar)event.getSource()).getValue();
    ...
}

我怎样才能得到新的日期?

【问题讨论】:

    标签: ajax primefaces calendar


    【解决方案1】:

    我对 Primefaces 5.3 中的 p:calendar 有同样的需求,并且使用此代码对我有用。我不使用事件参数

    <p:calendar id="startDate"
                value="#{filterStart}" 
                required="true"
                showOn="button" 
                maxdate="#{filterEnd}">
        <p:ajax event="dateSelect"
                listener="#{listController.onFilterStartChanged()}"
                update="filterTbl, endDate" />
        <p:ajax event="change" 
                listener="#{listController.onFilterStartChanged()}"
                update="filterTbl, endDate" />
    </p:calendar>
    

    方法中没有参数,值在filterStart中

    public void onFilterStartChanged()  {...}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-19
      • 1970-01-01
      • 2012-11-25
      • 1970-01-01
      • 2013-02-22
      • 1970-01-01
      • 1970-01-01
      • 2017-12-24
      相关资源
      最近更新 更多