FullCalendar超过开始日期



有人能帮我了解如何将开始日期输入日历吗。我已经创建了一个Delivery Scheduler日历,并通过数据库在日历下的一个表中显示交付详细信息。这要求我在用户选择日历日加载表信息时刷新页面。我可以想出如何在传入页面的开始日期开始日历。

看起来这很容易,但我做错了什么。

$('#calendar').fullCalendar(选项);$('#calendar').fullCalendar('gotoDate','2012-10-21');

基于文档的示例http://arshaw.com/fullcalendar/docs/current_date/gotoDate/

记住,月份是0,所以10意味着11月。

$(document).ready(function () {
    var calendar = $('#calendar').fullCalendar({
        events:[
            { title:'All Day Event', start:new Date(2012, 10, 20)},
            { title:'Long Event', start:new Date(2012, 10, 21), end:new Date(2012, 10, 22)}
        ]
    });
    $('#calendar').fullCalendar('gotoDate', 2012, 10, 21);
});

感谢Biesior的帮助。我能够使用你建议的代码来获得我想要的行为。

在使用上面的方法时,我注意到Firebug的控制台显示了两个同时执行的AJAX数据请求,一个用于与当前日期关联的视图,另一个用于和指定的gotoDate关联的视图。

从用户的角度来看,似乎没有任何额外的延迟,日历从一开始就显示请求的视图。然而,"加载"回调将被多次调用,这在某些情况下可能会导致奇怪的行为。还可能存在与当前日期的多余AJAX请求相关联的其他不希望的结果。

我能够避免不必要的AJAX请求,方法是在没有事件源的情况下初始化日历,然后移动到上面Biesior所示的所需日期,然后添加事件源。顺序如下所示为了简洁起见,我删除了一些不相关的FullCalendar选项和回调。还有一些额外的AJAX参数和一些PHP,但需要注意的是,当指定了事件源时

原始代码导致两个同时的AJAX请求:

$('#calendar').fullCalendar({
  events: {
    url:'/Services/GetEvents.php',
    type: 'POST',
    data: {
        lat: <?=$venLatitude?>,
        lon: <?=$venLongitude?>,
        userID: <?=$userID?>,
        distance: <?=$distance?>
    }
  }
})
$('#calendar').fullCalendar('gotoDate', <?=(int)substr($startDate,0,4)?>, <?=((int)substr($startDate,5,2))-1?>);

此调整只会导致所需的AJAX请求:

        $('#calendar').fullCalendar();
        $('#calendar').fullCalendar('gotoDate', <?=(int)substr($startDate,0,4)?>, <?=((int)substr($startDate,5,2))-1?>);
        $('#calendar').fullCalendar('addEventSource', {
                url:'/Services/GetEvents.php',
                type: 'POST',
                data: {
                    lat: <?=$venLatitude?>,
                    lon: <?=$venLongitude?>,
                    userID: <?=$userID?>,
                    distance: <?=$distance?>
                }
            });

相关内容

  • 没有找到相关文章

最新更新