2013-05-25 57 views
1

我正在使用http://arshaw.com/fullcalendar/,我想動態過濾基於頁面上各種複選框顯示的事件。我正在使用ajax源代碼(將過濾器作爲參數傳遞)來收集數據。FullCalendar - 初始加載後,動態更新ajax參數不起作用

我遇到的問題是一旦我加載日曆,我不能,爲我的生活(或stackoverflow搜索)弄清楚如何更新參數。看來一旦日曆加載,這些參數就會「烘焙」並且無法更改。

我已經嘗試了addEventSource,removeEventSources,removeEvents,refetchEvents等的各種組合(這裏推薦:rerenderEvents/refetchEvents problem),但仍然沒有運氣。

我目前的解決方案是在每次更新過濾器時重新啓動整個.fullCalendar--這也導致大量問題,並且不是一個優雅的解決方案。

任何想法在一個簡單的方法來做到這一點?每次更新參數時重新獲取源代碼應該是自動的。我真的很感謝你的幫助。

回答

0

在我的代碼我做這樣的:

我與日曆ID陣列來顯示和更新它,當用戶選中或取消選中該複選框。

在fullCalendar初始化我檢索所有事件和我使用此功能進行篩選:

function fetchEvent(calendars, events) { 

    function eventCorrespond (element, index, array) { 

      return $.inArray(element.calendarid, calendars) > -1; 

    } 

return events.filter(eventCorrespond); 
} 

$('#calendar').fullCalendar({ 
    events: function(start, end, callback) { 

    //fetch events for date range on the server and retrieve an events array 
    //update calendars, your array of calendarsId 

    //return a filtered events array 
     callback(fetchEvent(calendars , events)); 
    } 
}); 

當用戶選中或取消選中複選框我做的:

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

,對工作的解決方案我是:

$('#calendar').fullCalendar('removeEventSource', 'JsonResponse.ashx?technicans=' + technicians); 
technicians = new_technicians_value; 
$('#calendar').fullCalendar('addEventSource', 'JsonResponse.ashx?technicans=' + technicians); 

「addEventSource」事件後將立即fetche d來自新的來源。

這裏的完整答案https://stackoverflow.com/a/36361544/5833265

相關問題