<rich:calendar> client side disable weekends
I have following xhtml file vith rich:calendar
and I'm trying to disable some days using this example. But javascript function is never called. I don't know why.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html ... >
&开发者_高级运维lt;f:view locale="en">
<script type="text/javascript">
function isDayEnabled(day){
var date = new Date(day.date);
return (date.getDay() == 6);
}
function getDisabledStyle(day){
if (!isDayEnabled(day)) return 'rich-calendar-boundary-dates disabledDay';
}
</script>
<h:head>
<style type="text/css">
.disabledDay { background-color:gray; }
</style>
</h:head>
<h:body>
<div id="workspace">
<h:form id="form">
<h:outputText value="Datum: " />
<rich:calendar mode="ajax" id="calendar"
isDayEnabled="isDayEnabled();" dayStyleClass="getDisabledStyle();">
</rich:calendar>
....
Could you help me?
As the showcase example shows, you need to specify the sole function name. Remove the parentheses.
<rich:calendar mode="ajax" id="calendar"
isDayEnabled="isDayEnabled" dayStyleClass="getDisabledStyle">
Or when you're actually using RichFaces 4.0, then you need to check a different showcase site.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<h:outputStylesheet>
.everyThirdDay {
background-color: gray;
}
.weekendBold {
font-weight: bold;
font-style: italic;
}
</h:outputStylesheet>
<h:outputScript>
var curDt = new Date();
function disablementFunction(day){
if (day.isWeekend) return false;
if (curDt==undefined){
curDt = day.date.getDate();
}
if (curDt.getTime() - day.date.getTime() < 0) return true; else return false;
}
function disabledClassesProv(day){
if (curDt.getTime() - day.date.getTime() >= 0) return 'rf-cal-boundary-day';
var res = '';
if (day.isWeekend) res+='weekendBold ';
if (day.day%3==0) res+='everyThirdDay';
return res;
}
</h:outputScript>
<rich:calendar dayDisableFunction="disablementFunction"
dayClassFunction="disabledClassesProv" boundaryDatesMode="scroll" />
</ui:composition>
The attributes are renamed to dayDisableFunction
and dayClassFunction
.
精彩评论