问题描述
|
我正在编写一个asp.net mvc房间预订应用程序,其中我正在尝试集成fullcalendar。因此,当某人为某个事件预订房间时,他们为该事件选择时间,为其命名,然后系统为该事件分配预订ID。然后,在日历的时段中,我们将看到为该事件保留的时间以及该事件的标题。因此,我想在时间旁边显示一个预订ID,而不是事件的标题,例如\“ 8:00 -10:00 am Reservation ID#123 \”。可能吗?我是否需要编辑核心文件fullcalendar.js?
此外,是否可以在日历上安排重复事件?
非常感谢你!
解决方法
根据需要构建一个表示事件标题的属性。
您的控制器动作
public JsonResult GetEvents(double start,double end)
{
//Bunch of work to deal with date format and retrieve data
var urlHelper = new UrlHelper(ControllerContext.RequestContext);
var result = from e in eventList
select
new
{
id = e.EventId,title = e.StartDate.ToString(\"s\") + \" - \" +
e.EndDate.ToString(\"s\") +
\" Reservation ID#\" +
e.ReservationNumber,start = e.StartDate.ToString(\"s\"),end = e.EndDate.ToString(\"s\"),url = urlHelper.Action(\"Details\",\"Event\",new {id = e.EventId}),color = e.IsActive ? \"#2E9AFE\" : \"#FA5858\"
};
var rows = result.ToArray();
return Json(rows,JsonRequestBehavior.AllowGet);
}
至于重复发生的事件,您必须自己进行构建。我基本上创建了一个标准的CRUD add事件操作,该操作还要求重复直到日期。
返回事件列表后,您可以遍历集合以重复查找这些事件。当您找到一个事件时,您必须经历确定要添加的“虚拟”重复事件的过程。我基本上确定了从现在到应该有重复事件的重复结束之间的日期列表。
有了这些重复日期列表后,请使用原始事件的ID和所有其他详细信息为每个事件创建一个新事件。这样,当您单击日历事件时,它们代表相同的事件。使用这个新的事件列表,将其添加到您的原始事件列表上,即可开始工作。您的日历将显示重复发生的事件,但更明智。
希望能有所帮助。