【问题标题】:How disable past and future dates in <p:calendar>?如何在 <p:calendar> 中禁用过去和未来的日期?
【发布时间】:2015-06-19 14:06:33
【问题描述】:

我需要在 Primefaces 的 &lt;p:calendar&gt; 组件中禁用当前日期的所有过去日期,并仅提供当前日期的三个即将到来的日期。如何做到这一点?

【问题讨论】:

  • Remarkable...PrimeFaces showcase 中有一个这样的例子,PrimeFaces 文档中也提到了它。这比找到... 认真;-((请标记因为没有建设性;-))

标签: jsf primefaces calendar


【解决方案1】:

您可以使用&lt;p:calendar&gt; 组件的mindatemaxdate 属性。例如:

<p:calendar mindate="#{dateBean.today}" maxdate="#{dateBean.todayPlusThree}" />

dateBean bean 中,您将拥有(至少)两个内容与此类似的 getter:

public Date getToday() {
   Calendar c = Calendar.getInstance(); 
   return c.getTime();
}

public Date getTodayPlusThree() {
   Calendar c = Calendar.getInstance(); 
   c.add(Calendar.DATE, 3);
   return c.getTime();
}

【讨论】:

  • 您是否将DateBean 注册为 JSF 托管 Bean?
【解决方案2】:

您可以按照合作伙伴所说的使用 maxdate 和 mindate。

<p:calendar id="inputDataNaixement" maxdate="#{datesController.today}"></p:calendar>

并在Controller(ManagedBean)中添加一个带有今天日期的变量,以便在p:calendar中使用它

public Date today;

public Date getToday() {
    Calendar c = Calendar.getInstance(); 
       return c.getTime();
}
public void setToday(Date today) {
    this.today = today;
}

【讨论】:

    猜你喜欢
    • 2015-08-09
    • 2022-07-31
    • 2015-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-05
    • 1970-01-01
    • 2020-08-06
    相关资源
    最近更新 更多