Fullcalendar不在客户端中呈现事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Fullcalendar不在客户端中呈现事件相关的知识,希望对你有一定的参考价值。

我正在尝试制作一个显示所有工作日和活动的日历,而不考虑它是哪个日期。来自数据库的日期是“随机的”,在C#代码中我获得当前周并将每个“随机”日期与当前周的相应日期相关联(因此用户不会)(公共DateTime AssimilarDataAoDiaSemana(字符串dia,列出dts))。

我有这个C#代码https://pastebin.com/ipe4t8Pa,它返回一个JSON,例如:

{
    "events":[
     {
         "title": "VIP",
         "start": "2018-03-03 10:00:00",
         "end": "2018-03-03 11:00:00",
         "allDay": false
     },
     {
         "title": "ALMANAQUE DA CACAU",
         "start": "2018-02-25 17:00:00",
         "end": "2018-02-25 18:00:00",
         "allDay": false
     }
    ]
}

这是我的javascript

function Grade() {
if (VerificarURL("programacao")) {
    var cal = $("#calendario").fullCalendar({
        events: {
            url: "/programacao/calendario",
            dataType: "json",
            type: "GET",
            success: function (data) {
                console.log(data);
            },
            color: "white",
            textColor: 'white'
        },
        columnHeaderFormat: "dddd",
        handleWindowResize: true,
        header: false,
        height: "auto",
        defaultView: "agendaWeek",
        editable: false,
        minTime: "06:00",
        maxTime: "24:00",
        displayEventTime: false,
        allDaySlot: false,
        allDayText: false,
        timeFormat: "HH(:mm)",
        slotLabelFormat: "HH:mm",
    });
}
}

问题是:事件不会在客户端呈现。有任何想法吗?

答案

很简单,您返回的JSON格式与fullCalendar所期望的格式不兼容。您只需要返回事件数组,而不会将对象包裹起来。您的活动数据只需要如下所示:

[
     {
         "title": "VIP",
         "start": "2018-03-03 10:00:00",
         "end": "2018-03-03 11:00:00",
         "allDay": false
     },
     {
         "title": "ALMANAQUE DA CACAU",
         "start": "2018-02-25 17:00:00",
         "end": "2018-02-25 18:00:00",
         "allDay": false
     }
]

fullCalendar期望JSON是一个数组。如果你按照你的例子返回一个对象,它不知道在里面查找数组,并且只假设没有事件。

如果您稍微修改C#代码以生成此输出,它应该可以正常工作。

以上是关于Fullcalendar不在客户端中呈现事件的主要内容,如果未能解决你的问题,请参考以下文章

FullCalendar在updateEvents之后不重新呈现

在Ajax数据库更新后重新呈现fullCalendar中的事件

将事件添加到从服务器FullCalendar返回的事件数组中

Fullcalendar:立即在SQL db中保存外部事件

Fullcalendar 使用 JSON PHP 页面作为事件源

jQuery fullCalendar删除document.ready上的旧事件