当我们点击p:schedule的上一个或下一个导航时,我想移动p:calendar的所选日期(就像谷歌日历一样)。
<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 :(得分:2)
我使用Primefaces 5.2并基于示例Lazy Schedule展示实现了一个解决方案。 http://www.primefaces.org/showcase/ui/data/schedule.xhtml
点击导航按钮prev或next p:schedule, 生成一个调用接收的init()方法的事件 startDate日期和endDate p:日历。 每次单击都会调用具有新日期的方法。
查看示例代码的一部分:
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));
}
};
}
答案 1 :(得分: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);
}
});