2013-06-24 31 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