2014-06-25 59 views
0

當我們點擊p:schedule的prev或next導航時,我想要移動p:calendar的選定日期(如google日曆中)。鏈接p:時間表prev next按鈕p:日曆如google日曆

<p:calendar mode="inline" navigator="true" id="inlineCal" widgetVar="searchCalVar" 
    value="#{bean.miniCalDate}" style="width:200px;"> 
     <p:ajax event="dateSelect" listener="#{bean.handleDateSelect}" update="calendarselectedvalue accord" /> 
    </p:calendar> 

    <p:schedule id="schedule" value="#{bean.eventModel}" 
    widgetVar="scheduleWidget" draggable="true" resizable="false" allDaySlot="true" slotMinutes="15" firstHour="9" initialDate="#{bean.miniCalDate}" timeZone="UTC" view="agendaWeek" leftHeaderTemplate="today, ,prev,next" rightHeaderTemplate="agendaDay,agendaWeek,month"> 
    </p:schedule> 

我試圖

 $('.fc-button-next').click(function(){ 
     myFullCal = scheduleWidget.jq.children(":first"); 
     var view = myFullCal.fullCalendar('getView'); 
     if(view.name=='agendaDay') 
     { 
     // var newDate=myFullCal.fullCalendar('getDate'); 
      // var newDate=new Date($(PrimeFaces.escapeClientId('accord:calendarselectedvalue')).val()); 
//  var nextSelectedDate=new Date(newDate.setDate(newDate.getDate()+1)); 
     //var newMonth= newDate.getMonth()+1; 
     //var year = newDate.getFullYear()+""; 
     //var newYear=year.substring(2); 
     //var nextDate=newDate.getDate()+'/'+newMonth+'/'+newYear; 
     cal = searchCalVar.jq.children(":first"); 
     cal.input.val("27/6/14"); 
     } 
    }); 

我用Google搜索的解決方案。但一無所獲。

任何幫助將不勝感激。

回答

0

嗯,我猜下面的代碼解決了我的問題。

$('.fc-button-next').click(function(){ 
      myFullCal = scheduleWidget.jq.children(":first"); 
        var view = myFullCal.fullCalendar('getView'); 
        if(view.name=='agendaDay') 
        { 
         var selectedDate=searchCalVar.getDate(); 
         searchCalVar.setDate(null); 
         var nextDate=new Date(selectedDate.setDate(selectedDate.getDate()+1)); 
         searchCalVar.setDate(nextDate); 
        } 
       }); 

       $('.fc-button-prev').click(function(){ 
        myFullCal = scheduleWidget.jq.children(":first"); 
        var view = myFullCal.fullCalendar('getView'); 
        if(view.name=='agendaDay') 
        { 
         var selectedDate=searchCalVar.getDate(); 
         searchCalVar.setDate(null); 
         var nextDate=new Date(selectedDate.setDate(selectedDate.getDate()-1)); 
         searchCalVar.setDate(nextDate); 
        } 
       }); 
2

我使用Primefaces 5.2並實施了基於示例Lazy Schedule展示的解決方案。 http://www.primefaces.org/showcase/ui/data/schedule.xhtml

通過點擊導航按鈕PREV或下一個號碼:日程安排,產生 的事件調用接收 起始日期日期和結束日期p中init()方法:日曆。每次點擊都會用新的日期調用該方法。

看到樣本代碼的一部分:

public void init() {   
    ScheduleModel lazyEventModel = new LazyScheduleModel() {    

     public void loadEvents(Date startDate, Date endDate) { 
      Date random = getRandomDate(startDate); 
      addEvent(new DefaultScheduleEvent("Lazy Event 1", random, random));     
      random = getRandomDate(endDate); 
      addEvent(new DefaultScheduleEvent("Lazy Event 2", random, random)); 
     } 
    }; 
} 
相關問題