<rich: calendar> на стороне клиента отключить выходные - PullRequest
2 голосов
/ 18 июня 2011

У меня следующий xhtml файл с rich:calendar, и я пытаюсь отключить несколько дней , используя этот пример .Но функция javascript никогда не вызывается.Я не знаю почему.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html ... >

<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>
....

Не могли бы вы мне помочь?

1 Ответ

5 голосов
/ 18 июня 2011

Как показывает пример демонстрации, вам нужно указать единственную функцию name .Снимите скобки.

<rich:calendar mode="ajax" id="calendar"
    isDayEnabled="isDayEnabled" dayStyleClass="getDisabledStyle">

Или когда вы на самом деле используете RichFaces 4.0, тогда вам нужно проверить другой демонстрационный сайт .

<!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>

Атрибуты переименованы в dayDisableFunction и dayClassFunction.

...