简体   繁体   English

在FullCalendar上获取事件

[英]Fetching events on FullCalendar

I'm trying to make FullCalendar works on my app, but I'm not able to fetch the events I have on my mysql database. 我正在尝试使FullCalendar在我的应用程序上正常工作,但无法获取我在mysql数据库上的事件。 Here is my code: 这是我的代码:

.cshtml .cshtml

<div class="panel-body">
                    <script type="text/javascript">
                        $(document).ready(function () {
                            $('#calendar').fullCalendar({
                                height: 600,
                                width: 500,
                                theme: false,
                                fixedWeekCount: false,
                                header: {
                                    left: 'prev,next today',
                                    center: 'title',
                                    right: 'month,agendaWeek,agendaDay',

                                },
                                weekends: false,
                                editable: false,
                                eventSources: [

                                       'Agenda/getEvents'

                                ],
                            });
                        });
                    </script>
                    <div id="calendar"></div>
                </div>

.cs controller .cs控制器

{
public class AgendaController : Controller
{
    // GET: Agenda
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult Agenda()
    {
        ViewBag.id = Session["id"];
        ViewBag.usuario = Session["usuario"];
        ViewBag.tipo_usuario = Session["tipo_usuario"];
        return View();
    }

    [HttpPost]
    public JsonResult getEvents(double start, double end)
    {
        try
        {
            DataTable dt = new DataTable();


            using (MySqlConnection con = new MySqlConnection(BD.CadConMySQL()))
            {
                using (MySqlCommand cmd = new MySqlCommand("SELECT tareas.tipo as title, tareas.fecha_inicio as start, tareas.fecha_fin as end FROM tareas", con))
                {


                    using (MySqlDataAdapter da = new MySqlDataAdapter(cmd))
                    {
                        da.Fill(dt);
                    }
                }
            }

            return Json(dt.ToList());
        }
        catch (Exception e)
        {
            RespGeneric resp = new RespGeneric("KO");
            resp.msg = e.Message;
            return Json(resp);
        }
    }

So the Agenda/getEvents give me back this following JSON that seems ok for FullCalendar: JSON 因此,议程/ getEvents给我返回了以下对于FullCalendar来说不错的JSONJSON

However, the calendar doesnt show any event and I dont get why because the JSON looks good and if I fetch the events one by one on the .cshtml with exactly the same data it works. 但是,日历未显示任何事件,我也无法理解原因,因为JSON看起来不错,而且如果我在.cshtml上逐一读取事件并使用完全相同的数据。 Thanks! 谢谢!

I think that you didn't respect the structure of a standard eventSource fetch which is described in the documentation as : 我认为您不尊重标准eventSource提取的结构,该结构在文档中被描述为:

$('#calendar').fullCalendar({

  eventSources: [

    // your event source
    {
      url: '/myfeed.php',
      type: 'POST',
      data: {
        custom_param1: 'something',
        custom_param2: 'somethingelse'
      },
      error: function() {
        alert('there was an error while fetching events!');
      },
      color: 'yellow',   // a non-ajax option
      textColor: 'black' // a non-ajax option
    }

    // any other sources...

  ]

});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM