在全日历.js中显示事件时出现问题

Issue in displaying events in Fullcalendar.js

本文关键字:问题 事件 显示 日历 js      更新时间:2023-09-26

嗨,我正在尝试使用 Asp.Net MVC实现FullCalendar.js。我可以显示空日历,但我的事件没有加载到日历中。

 $.ajax({
                type: 'Get',
                url: "/Matter/GetMatterEventsSummary",
                data: data,
                datatype: "Json",
                contentType: "application/json",
                success: function (doc) {
                    debugger;
                    $('#calendar').fullCalendar();
                    var events = [];
                    $(doc).find('[object Object],[object Object]').each(function () {
                        debugger;
                    events.push({
                            title: $(this).attr('title'),
                            start: $(this).attr('start') // will be parsed
                        });
                   // });
                    $('#calendar').fullCalendar('refetchEvents');
                  //  callback(events);
                }
            });

谈到成功方法,它有两个事件。 但不知道为什么这些事件没有加载到FullCalendar中,并且在此日历之后也不会自动到来。我想它不会在事件中。当我将鼠标悬停在文档上时,它会显示"[对象对象],[对象对象]",并且其中在 [0] 和 [1] 上有两条记录。

请帮我解决这个问题。

尝试使用

$('#calendar').fullCalendar( 'rerenderEvents' )

在您的事件被拉出之后。

另外,请确保正确使用官方文档中的代码。请尝试以下操作(未经测试):

$('#calendar').fullCalendar({
  events: function(start, end, timezone, callback) {
    $.ajax({
        type: 'Get',
        url: "/Matter/GetMatterEventsSummary",
        data: data,
        datatype: "Json",
        contentType: "application/json",,
        success: function(doc) {
            var events = [];
            $(doc).find('event').each(function() {
                events.push({
                    title: $(this).attr('title'),
                    start: $(this).attr('start') // will be parsed
                });
            });
            callback(events);
        }
    });
  }
});

如果现在要重新获取事件,请调用 :

  $('#calendar').fullCalendar('refetchEvents');

必要时。

编辑:由于您实际上是从 JSON 源中提取数据,因此以下代码甚至可能就足够了:

$('#calendar').fullCalendar({
    events: '/Matter/GetMatterEventsSummary'
});

查看此处的文档:

编辑2:

要动态修改发送到后端的请求(取决于下拉列表或其他内容),可以按如下方式实现:

 var myValue = 10;
 $('#calendar').fullCalendar({
    events: '/Matter/GetMatterEventsSummary',
    data: function() { // a function that returns an object
        return {
            dynamic_value: myValue
        };
    }
});