I am not sure if I am using this correctly so my problem may be my mis-understanding rather than a bug or larger problem.
I have a fullcalendar that gets initiated f
newEvents = [...]
$('#calendar').fullCalendar('removeEvents');
$('#calendar').fullCalendar( 'addEventSource', newEvents);
no need to 'rerenderEvents' and works like a charm!
In pseudo, remove old events, add a new event source, then refetch events (from the only source, which is now the new source):
$('#calendar').fullCalendar('removeEvents')
$('#calendar').fullCalendar('addEventSource', 'JsonResponse.ashx?technicans=' + technicians)
EDIT: Instead of:
Then refetch and render the new events:
$('#calendar').fullCalendar( 'refetchEvents' )
OR:
$('#calendar').fullCalendar('rerenderEvents')
$('#calendar').fullCalendar('removeEvents');
$('#calendar').fullCalendar('addEventSource', 'JsonResponse.ashx?technicans=' + technicians);
$('#calendar').fullCalendar('rerenderEvents');
The above solution works, but every time you run it, it add an eventSource.
So when you need to run $('#calendar').fullCalendar('refetchEvents');
you will get events from all sources, so many dublicate events and events from all previous sources.
The solution that works for me good is:
$('#calendar').fullCalendar('removeEventSource', 'JsonResponse.ashx?technicans=' + technicians);
technicians = new_technicians_value;
$('#calendar').fullCalendar('addEventSource', 'JsonResponse.ashx?technicans=' + technicians);
And there is no need for "rerenderEvents" or "refetchEvents".
After "addEventSource" events will be immediately fetched from the new source.
After that "refetchEvents" will work as supposed to when needed.
with fulcalendar 4.x I'm using something like this:
initialize calendar as usual:
var calendar = $('#calendar').fullCalendar({
...
events: "JsonResponse.ashx?technicians=" + technicians,
...
});
and then when you need to redraw events:
var eventSources = calendar.getEventSources();
for(var i in eventSources)
{
var evres=eventSources[i];
evres.refetch();
}
calendar.render();
Thanks for the help!
Here is what worked based on Scoobler's suggestions the steps that work are (1) removeEvents. (2) addEventSource, (3) rerenderEvents.
$('#calendar').fullCalendar('removeEvents');
$('#calendar').fullCalendar('addEventSource', 'JsonResponse.ashx?technicans=' + technicians);
$('#calendar').fullCalendar('rerenderEvents');