2016-06-01 11 views
1

私はうまくいきます。クリックしてレコードを表示し、色を緑色または赤色に変更します。レコードが利用可能な場合、日付は赤色になります。 私はonclickをしたくありません。カレンダーに日付の色を表示させたいのですが、 カレンダーのonloadイベントです。** KIndly help。以下は私のコードです。私はCSSの問題だと思います。豊富な日付のハイライト:calendar

.postive-records .rf-cal-sel { 
    background-color: green; 
} 

.no-records .rf-cal-sel { 
    background-color: red; 
} 

<rich:calendar styleClass="#{eventMaster.eventMasterList!=null and eventMaster.eventMasterList.size()>0?'postive-records':'no-records'}" locale="EN" 
     id="searchDateCalendarcommon" popup="false" 
     showApplyButton="false" datePattern="dd/MM/yyyy" 
     value="#{eventMaster.eventSearchDate}" > 
    <rich:tooltip followMouse="false" 
      showDelay="100" 
      direction="topRight" 
      layout="block" 
      onmouseover=""> 
     <h:outputText value="#{eventMaster.calendarTooltipText}" 
       style="color: red;font-size: 12px;"/> 
    </rich:tooltip> 
    <f:ajax event="change" listener="#{commonOutputContentBean.showEvents()}" 
      render="cmnoplayoutfrm searchDateCalendarcommon" /> 
</rich:calendar> 

答えて

0

カレンダーは1ヶ月の日数を表示するだけで、どのデータにもリンクされていません。さらにstyleClassはカレンダー全体には適用されません。あなたはdataModelを提供する必要があります。

データモデルにorg.richfaces.model.CalendarDataModelを実装する必要があります。また、getterとsetterを使用して平易なオブジェクトである日にorg.richfaces.model.CalendarDataModelItemを実装する必要があります。

public class MyCalendarModel implements CalendarDataModel { 

    private boolean hasEvents(Calendar calendar) { 
     // … 
    } 

    @Override 
    public CalendarDataModelItem[] getData(Date[] dateArray) { 
     CalendarDataModelItem[] modelItems = new MyCalendarModelItem[dateArray.length]; 
     Calendar current = GregorianCalendar.getInstance(); 
     Calendar today = GregorianCalendar.getInstance(); 
     today.setTime(new Date()); 
     CalendarModelItem modelItem; 
     for (int i = 0; i < dateArray.length; i++) { 
      current.setTime(dateArray[i]); 
      modelItem = new MyCalendarModelItem(); 
      if (hasEvents(current)) { 
       modelItem.setStyleClass("postive-records"); 
      } else { 
       modelItem.setStyleClass("no-records"); 
      } 
      modelItems[i] = modelItem; 
     } 
     return modelItems; 
    } 

    @Override 
    public Object getToolTip(Date date) { 
     return null; 
    } 
} 

あなたはshowcaseの例を確認できます。CalendarModelはこのようなものになるだろう。

+0

ありがとうございます。私はコードを変更しましたが解決策が見つかりません – user3514526

+0

hasEventメソッドに問題はありますか?private boolean hasEvents(Calendar calendar){ return true; } – user3514526

+0

いいえ、そこにCSSクラスを取得していませんか? '.postive-record .rf-cal-sel'がうまくいかないと、あなたのクラスはテーブルのセルに適用されるようになります。 – Makhiel

関連する問題