如何使用参数表调用fullcalendar events()?

如何使用参数表调用fullcalendar events()?,fullcalendar,Fullcalendar,是否有一种基于下拉列表筛选事件的方法? 我试过: events: '/Controller/action?id='+id, $("#drop").change(function () { id = $('#drop').val(); $('#calendar').fullCalendar('refetchEvents'); 但是控制器没有看到新的id。 关于将参数传递给events()方法的任何建议?您在初始化日

是否有一种基于下拉列表筛选事件的方法? 我试过:

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


        $("#drop").change(function () {
            id = $('#drop').val();     
            $('#calendar').fullCalendar('refetchEvents');
但是控制器没有看到新的id。 关于将参数传递给events()方法的任何建议?

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

解决此问题的最简单方法可能是使用自定义事件源,如下所示:

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


注意:我还向数据中添加了“开始”和“结束”参数,因为事件源应该过滤日历上实际显示的日期返回的事件,否则每次视图或日期更改时都会返回所有事件。

hi ADyson,感谢您的提示。我更改了事件:调用函数。我看到传递给控制器的id,它用于限制返回值。但出于某种奇怪的原因,日历根本没有显示任何内容。可能与'callback'参数有关-必须寻找更多示例。彼得:让它工作吧。控制器创建了匿名类型,所以我必须更改:$(doc).find('event').each(function(){到$(doc)).each(function(){好的。我不确定这与这个解决方案有什么关系?代码放在哪里,应该实现什么?嗨,ADyson,你的解决方案很完美。ADyson,我是否单击“回答你的问题”?
//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');
});