可以显示两个/三个月吗?

时间:2010-08-02 22:02:21

标签: jquery-plugins fullcalendar

是否可以显示两个/三个月?

7 个答案:

答案 0 :(得分:3)

即使我想要同样的东西并做了类似的事情。

<table width="100%" cellpadding="5" cellspacing="5"> <tr> <td> &nbsp; </td> <td> <input type="button" id="myprevbutton" value="&nbsp;&#9668;&nbsp;" />&nbsp; <input type="button" id="mynextbutton" value="&nbsp;&#9658;&nbsp;" />&nbsp; </td> <td> &nbsp; </td> </tr> <tr> <td width="33%"> <div id='calendar0'> </div> </td> <td width="33%"> <div id='calendar1'> </div> </td> <td width="33%"> <div id='calendar2'> </div> </td> </tr> </table>

和JS

$(document).ready(function() {

    var date = new Date();

    var d = date.getDate();
    var m = date.getMonth();
    var y = date.getFullYear();

    $('#calendar0').fullCalendar({
    header: {
            left: '',
            center: 'title',
            right: ''
        },
    month:m-1,
    theme: true,
    });
    $('#calendar2').fullCalendar({
    header: {
            left: '',
            center: 'title',
            right: ''
        },
    month:m+1,
    theme: true,
    });
    $('#calendar1').fullCalendar({
        header: {
            left: '',
            center: 'title',
            right: ''
        }, 
    theme: true,
    editable: false,
    });

    $('#myprevbutton').click(function() {
        $('#calendar0').fullCalendar('prev');
        $('#calendar1').fullCalendar('prev');
        $('#calendar2').fullCalendar('prev');
    });
    $('#mynextbutton').click(function() {
        $('#calendar0').fullCalendar('next');
        $('#calendar1').fullCalendar('next');
        $('#calendar2').fullCalendar('next');
    });



});

答案 1 :(得分:2)

<强> TL; DR
 Cannon has posted a modified FullCalendar允许日历跨越一个多月,但这似乎在所有月份都会运行,并且与早期版本的FullCalendar绑定。

这是我对3个独立日历的看法,这些日历会隐藏两个日历上的导航并同步主日历上的月份:jsFiddle

<强>详情

设置3个日历 - 在我的情况下,主要日历有较小的&#39;看后面/向前看&#39;日历到下个月和前几个月:

<div id='calendarPrev' style='width:50%'></div>
<div id='calendarCurrent'  style='width:100%'></div>
<div id='calendarNext' style='width:50%'></div>

使用功能干掉日历初始化,可选择隐藏导航:

function initCalendar($calendarDiv, displayDate, isMain) {
    $calendarDiv.fullCalendar({
        defaultDate: displayDate,
        header: {
            left: 'title',
            center: '',
            right: isMain 
                ? 'today prev,next' 
                : ''
        },
        events: ... eventdata callbacks etc
    });
}

$(document).ready中,设置3个日历的初始日期,但相隔1个月,将导航隐藏在两个辅助日历上。然后在&#39; main&#39;上连接其他事件处理程序。日历的nextprev按钮可使3个日历保持同步:

$(document).ready(function() {
    initCalendar($('#calendarCurrent'), moment(), true);
    initCalendar($('#calendarPrev'), moment().subtract(1, 'months'), false);
    initCalendar($('#calendarNext'), moment().add(1, 'months'), false);

    $('body').on('click', 'button.fc-prev-button', function() {
        $('#calendarPrev').fullCalendar('prev');
        $('#calendarNext').fullCalendar('prev');
        // allow main calendar event to propogate
    });

    $('body').on('click', 'button.fc-next-button', function() {
        $('#calendarPrev').fullCalendar('next');
        $('#calendarNext').fullCalendar('next');
        // allow main calendar event to propogate
    });
}

答案 2 :(得分:1)

FullCalendar的文档应该可以帮助您回答这个问题(有详细记录,BTW)。我发现this正在快速搜索您的答案。

编辑:进一步挖掘,我发现this也指出它不是主要特征,但你可以采取一些措施来模仿你想要的东西。

答案 3 :(得分:0)

@ John Smith - 我创建了3个日历,到目前为止,它似乎对我有用,但不是拖动事件,地雷只是简单地保存事件标题,开始,结束并具有编辑它们的能力。

答案 4 :(得分:0)

一种替代方案可以是,在basicWeek视图中显示所需的周数。它呈现为显示2个月的标签。

$('#calendar').fullCalendar({

    header: {
        left: 'prev,next today',
        center: 'title',
        right: 'month,basicWeek,basicDay'
    },
    views: {
        basicWeek: {
            type: 'basic',
            duration: {weeks: 8},
            rows: 8
        }
    }
}

答案 5 :(得分:0)

与我工作的团队一起,我们提出了此解决方案(适用于Vue.js,但可以应用于任何版本)。您可以在一个日历中拥有多个月,它们之间的区别在于第一天的月份名称和背景颜色。它运作良好,并且与具有多个日历实例的解决方案形成对比,在这里您可以将事件从一个月拖放到另一个月,并创建从一个月开始到另一个月结束的事件。

https://github.com/fullcalendar/fullcalendar/issues/470#issuecomment-565542643

它看起来像这样: enter image description here

答案 6 :(得分:-2)

加上第一,第二和第三个月:

using (var package = new ExcelPackage(file))
{
    . . .
    AddImage(locationWorksheet, 1, 5, imgPath);
    . . .
}

private void AddImage(ExcelWorksheet oSheet, int rowIndex, int colIndex, string imagePath)
{
    Bitmap image = new Bitmap(imagePath);
    {
        var excelImage = oSheet.Drawings.AddPicture("PRO*ACT Logo", image);
        excelImage.From.Column = colIndex;
        excelImage.From.Row = rowIndex;
        excelImage.SetSize(108, 84);
    }
}