我的问题是让RichFaces日历限制允许选择的日期 由用户。
假设我想只允许用户选择本月的日期和下个月的日期。
我使用了preloadDateRangeStart和preloadDateRangeEnd属性,但他们什么也没做。
我创建了自己的CalendarDataModel,它使用preloadDateRangeStart和preloadDateRangeEnd并启用项目,但屏幕上的日历只允许选择当前月份的日期。请注意,preloadDateRangeStart是今天的日期,preloadDateRangeEnd是今天的日期再加上2个月。
我肯定在这里遗漏了一些东西。 有人能帮帮我吗?
答案 0 :(得分:3)
使用isDayEnabled="isDayEnabled"
属性,其中值(isDayEnabled
)是您应定义的javascript函数,格式为
function isDayEnabled(day) {
}
有关详细信息,请参阅richfaces demo。
如果要在服务器端添加验证,请使用自定义JSF验证器,或使用Hibernate Validator注释(请参阅richfaces - bean验证器)
答案 1 :(得分:1)
我弄清楚它是如何工作的,所以在这里:
我创建了一个实现CalendarDataModel
的类。
我没有使用preloadDateRangeStart
和preloadDateRangeEnd
属性,因为CalendarDataModel
只关注preloadDateRangeStart
和preloadDateRangeEnd
之间的范围,以防您指定它们
我的CalendarDataModel
禁用其日期超出我在属性文件中指定的日期范围的日历项目,我在CalendarDateModel
中使用该日历项目以确定该项目的日期是否不在该范围之间禁用它。
所以现在它很棒。这是标签:
<a4j:outputPanel id="myCal" layout="block">
<rich:calendar cellHeight="30px" cellWidth="30px"
dataModel="#{MyCalendarDataModel}" datePattern="dd/MM/yyyy" mode="ajax"
style="width:200px" value="#{MyPage.theDate}"/>
</a4j:outputPanel>
我也试过你的解决方案。它有效,但客户端有点乱。
再次感谢你