我正在尝试使用FullCalendar,它显示正常,包含来自数据库和Google日历的Feed更新事件。
但是我的问题是如何在页面上有一个保存按钮,当按下时,允许我将日历中的所有事件传回给我的控制器,以便将它们保存到数据库中?
一些代码(查看):
$(document).ready(function () {
/* initialize the external events
-----------------------------------------------------------------*/
$('#external-events div.external-event').each(function () {
// create an Event Object (http://arshaw.com/fullcalendar/docs/event_data/Event_Object/)
// it doesn't need to have a start or end
var eventObject = {
title: $.trim($(this).text()) // use the element's text as the event title
};
// store the Event Object in the DOM element so we can get to it later
$(this).data('eventObject', eventObject);
// make the event draggable using jQuery UI
$(this).draggable({
zIndex: 999,
revert: true, // will cause the event to go back to its
revertDuration: 0 // original position after the drag
});
});
// -------- Calendar set up ...
$('#calendar').fullCalendar({
eventSources:
[
{ // Uk holidays
url: 'http://www.google.com/calendar/feeds/uk__en%40holiday.calendar.google.com/public/basic',
color: 'blue',
textColor: 'white'
},
{ // booked availability
url: '/avalibility/GetAvail',
color: 'red'
}
],
//... more set up
});
控制器代码:
public JsonResult GetAvail(double start, double end)
{
var startDateTime = FromUnixTimestamp(start);
var endDateTime = FromUnixTimestamp(end);
var events = from e in db.PROJECT_CALENDAR
select e;
var AvilList = new List<object>();
foreach (var e in events)
{
AvilList.Add(
new
{
id = e.ID,
title = e.Title,
description = e.Title,
start = e.DateStart,
end = e.DateEnd
});
}
return Json(AvilList.ToArray(), JsonRequestBehavior.AllowGet);
}
答案 0 :(得分:1)
您是否尝试过使用clientEvents
回调?像这样:
var eventsFromCalendar = $('#calendar').fullCalendar( 'clientEvents');
这将返回包含所有fullCalendar事件对象的JSON数组。您可以将此数组传递给控制器,然后将它们存储到数据库中。
希望有所帮助!