【问题标题】:Primefaces Calendar - disabling specific dates using ELPrimefaces 日历 - 使用 EL 禁用特定日期
【发布时间】:2013-06-24 08:19:46
【问题描述】:

所以从我之前的问题Disable specific dates on p:calendar,我知道我可以使用这样的 Javascript 禁用特定日期:

  var disabledDays = ["5-15-2013", "6-23-2013"];
  function disableAllTheseDays(date) {
    var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
    for (i = 0; i < disabledDays.length; i++) {
        if($.inArray((m+1) + '-' + d + '-' + y,disabledDays) != -1) {
            return [false];
        }
    }
    return [true];
}

与:

<p:calendar id="pfdate" navigator="true" pattern="MM-dd-yyyy" 
      value="#{day}" BeforeShowDay="disableAllTheseDays" showOn="button"/>

但是,我的问题是如何使用 EL 表达式将日期存储在 disabledDays 数组中?我需要这样做,因为我需要禁用的日期会有所不同。禁用日期需要是动态的。如果我不能用 EL 表达式做到这一点,有没有办法使用一个包含动态数据的数组?

谢谢

【问题讨论】:

    标签: java jsf primefaces calendar el


    【解决方案1】:

    一种可能性是直接将值转换为 bean (["5-15-2013", "6-23-2013"]),然后直接放入 Javascript 代码中:

    var disabledDays = #{myBean.disabledDays};
    

    这不是最干净的,而是最简单的。另一种可能性是在 bean 中只包含字符串列表并使用 &lt;ui:repeat&gt; 将其打印为逗号分隔列表。

    【讨论】:

    • disabledDays 应该输入字符串数组吗?
    • 在第一种情况下,它必须只是一个字符串。然后,在 bean 的 getter 中格式化禁用日期以构建字符串:"['5-15-2013', '6-23-2013']".
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-11
    • 1970-01-01
    • 2012-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多