2013-06-24 34 views
0

所以从我刚才的问题,Disable specific dates on p:calendar具体日期,我知道我可以使用JavaScript这样的禁用特定日期:Primefaces日历 - 禁止使用EL

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表达式做这件事,是否有使用一个有动态数据的数组?

感谢

回答

1

一种可能性是刚转换价值在一个bean(["5-15-2013", "6-23-2013"]),并把它直接在Javascript代码:

var disabledDays = #{myBean.disabledDays}; 

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

+0

disabledDays应该键入String Array? –

+0

在第一种情况下,它必须只是一个字符串。然后,在bean的getter中,您将禁用的日期格式化为字符串:''''''5-15-2013','6-23-2013']“'。 – MaQy