【问题标题】:Is it possible to pass Calendar new date in the bean without listener?是否可以在没有侦听器的情况下在 bean 中传递日历新日期?
【发布时间】:2011-10-30 09:51:29
【问题描述】:

我正在尝试将新日期从 PrimeFaces p:calendar(放置在 p:dataTable 列中)传递给支持 bean:

<p:column >
    <p:calendar value="#{bean.date}">`
        <p:ajax />
    </p:calendar>
</p:column>

它不会更新 bean.date。带有

的变体
<p:ajax update="@this" event="change"/>
<p:ajax update="@this" event="select"/>

也不要更新 bean.date。我发现的唯一方法是使用监听器。但是,我想,应该有一种没有监听器实现的方法,比如简单的 facelets:

<p:column>
  <h:inputText value="#{bean.note}" >
      <f:ajax/>
  </h:inputText>
</p:column>

这对我来说很好。有谁知道如何让它工作!?

【问题讨论】:

    标签: ajax jsf-2 calendar primefaces


    【解决方案1】:

    p:calendar 对于 ajax 来说有点棘手; onSelectUpdate & selectListener 是关键;

    <p:column>
      <h:inputText id="itDate" value="#{bean.note}" >
          <f:ajax/>
      </h:inputText>
    </p:column>
    

    并且必须在Bean中实现handleDateSelect方法;

    public void handleDateSelect(DateSelectEvent event) {
        Date date = event.getDate();
        setDate(date);
        }
    

    【讨论】:

      【解决方案2】:
       <p:calendar value="#{Bean.value}">
         <p:ajax update="display" event="dateSelect" listener="#{Bean.handleDateSelect}"/>
       </p:calendar>
      

      这应该会有所帮助...但是没有听众意味着我不这么认为..你不能...

      【讨论】:

      • 这可行,但是当用户尝试向文本字段输入值时,支持 bean 不会更新。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-14
      • 1970-01-01
      • 1970-01-01
      • 2021-11-23
      • 2016-07-24
      • 2021-03-24
      • 1970-01-01
      相关资源
      最近更新 更多