开发者

<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() &lt; 0) return true; else return false; 
        }
        function disabledClassesProv(day){
            if (curDt.getTime() - day.date.getTime() &gt;= 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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜