2010-06-24 2 views
3

Я пытаюсь использовать виджет Lift и CalendarMonthView для построения системы назначения .Изменить фон элемента CalendarItem в Lift/Scala

CalendarMonthView работает с Лифт очень хорошо, но у меня есть проблема, что не может изменить стиль какого-либо CalendarItem, который отображается в календаре .

В соответствии с документом API, я использую следующий код для изменения класса css определенного класса CalendarItem при создании календаря.

class MySnippet { 
    def test (xhtml: NodeSeq) = { 
     val c = Calendar.getInstance 
     val meta = MonthViewMeta (Calendar.SUNDAY, Locale.getDefault) 

     c.set (2010, 0, 0) 

     bind ("cal", xhtml, 
       "widget" -> CalendarMonthView (c, meta, cals, Empty, 
              Empty, Empty)) 
    } 

    def cals = { 
     val c1 = Calendar.getInstance 
     val c2 = Calendar.getInstance 

     c1.set (2010, 0, 5, 10, 0) 
     c2.set (2010, 0, 6, 10, 0) 

     val calitem1 = CalendarItem ("4", c1, CalendarType.MEETING). 
         optional (
          _.subject  ("Red Item"), 
          _.description ("Background should be read") 
         ) 

     val calitem2 = CalendarItem ("5", c2, CalendarType.MEETING). 
         optional (
          _.subject  ("Green Item"), 
          _.description ("Background should be green"), 
          _.baseCSSClassName ("greenItem") 
         ) 


     List (calitem1, calitem2) 
    } 

} 

И я подтвердил, что в выходном HTML, calitem2 имеет "CssClass" атрибут установлен в "greenItem".

var calendars = { 
    "items": [{"id": "4", "start": 20, "end": 48, 
       "weekDay": "3", "startTime": "10:0",    
       "subject": "Red Item", "month": 0, "dayOfMonth": 5,    
       "description": "Background should be read"}, 
       {"id": "5", "start": 20, "end": 48, "weekDay": "4", 
       "startTime": "10:0", "subject": "Green Item", "month": 0, 
       "dayOfMonth": 6, "description": "Background should be green", 
       "cssClass": "greenItem"}] 
};    

И я также переопределять оригинальный style.css поставляются с CalendarMonthView и поставить его под WEB-INF/классов/toserv/календари/MonthView.

Я просматриваю его и удостоверяюсь, что это моя модифицированная версия, которая добавляет следующие классы CSS «greenItem».

.greenItem { 
     margin: 1px; 

} 

.greenItem a { 
     margin-left: 1px; 
     color: #FFFFFF; 
     text-decoration: none; 
     background-color: #00FF00; 
     display: block; 

} 

.greenItem a:hover { 
     text-decoration: none; 
     background-color: #ff6655; 
     display: block; 

} 

.greenItemHead { 
     margin: 1px; 

} 

.greenItemHead a { 
     margin-left: 1px; 
     color: #FFFFFF; 
     text-decoration: none; 
     background-color: #00FF00; 
     display: block; 

} 

.greenItemHead a:hover { 
     text-decoration: none; 
     background-color: #ff6655; 
     display: block; 

} 

.greenItemBody { 
     margin: 1px; 

} 

.greenItemBody a { 
     margin-left: 1px; 
     color: #FFFFFF; 
     text-decoration: none; 
     background-color: #00FF00; 
     display: block; 

} 

.greenItemBody a:hover { 
     text-decoration: none; 
     background-color: #ff6655; 
     display: block; 
} 

Но когда я просматриваю свою страницу календаря, второй CalendarItem еще в красном фоне, кажется, класс CSS не работает.

Я не знаком с JavaScript и JQuery, так что я что-то пропустил?

ответ

Смежные вопросы