如何使用参数表调用全日历事件()



有没有办法根据下拉列表过滤事件?我试过了:

  events: '/Controller/action?id='+id,

        $("#drop").change(function () {
            id = $('#drop').val();     
            $('#calendar').fullCalendar('refetchEvents');

但控制器看不到新 ID。关于将参数传递给 events(( 方法的任何建议?

您在初始化日历时将'/Controller/action?id='+id的结果作为事件源提供给日历。 例如,您传入/Controller/action?id=3 ,例如。该代码已运行,并且不会再次运行。fullCalendar 将该静态字符串存储为事件源的 URL。它以后不会关注"id"的值。

解决此问题的最简单方法可能是使用自定义事件源,如 https://fullcalendar.io/docs/event_data/events_function/:

//declare the calendar with a custom "events" functions
$("#calendar").calendar({
  //..all your calendar options, and then the events:
  events: function( start, end, timezone, callback ) {
    $.ajax({
      //whatever ajax parameters you need, but make sure:
      url: /Controller/action,
      data: { "id": $('#drop').val(), "start": start.format("YYYY-MM-DD"), "end": end.format("YYYY-MM-DD") }
    });
  }
});
$("#drop").change(function () {
  $('#calendar').fullCalendar('refetchEvents');
});

这样,当调用"refetchEvents"时,它会运行您作为"events"参数传递的函数,该函数可以在该时刻动态查找下拉列表的值。

请注意,我还向数据添加了"开始"和"结束"参数,因为事件源应该筛选日历上实际显示的日期返回的事件,否则每次视图或日期更改时,您最终都会返回所有事件。

相关内容

  • 没有找到相关文章

最新更新