0

所以从我之前的问题,禁用 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"/>

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

谢谢

4

1 回答 1

1

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

var disabledDays = #{myBean.disabledDays};

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

于 2013-06-24T09:02:20.857 回答