我正在编写一个asp.net mvc房间预订应用程序,尝试在其中集成完整日历。因此,当有人为某个活动预订房间时,他们会为该活动选择一个时间,给它一个标题,系统会为该事件分配一个预订ID。然后在日历的日期栏上,我们可以看到为该活动保留的时间和该活动的标题。所以我想在时间旁边显示一个预订ID,而不是活动的标题,比如"上午8:00-10:00预订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添加事件操作,该操作还要求递归到日期。
当您取回事件列表时,您可以在集合中进行迭代,以查找具有重复周期的事件。当你找到一个时,你必须经过确定要添加的"虚拟"重复事件的过程。我基本上确定了一个从现在到复发结束的日期列表,应该有一个复发事件。
一旦您有了重复的日期列表,请为每个日期创建一个新事件,其中包含原始事件的id和所有其他详细信息。这样,当您单击日历事件时,它们表示相同的事件。拿着这个新的事件列表,把它粘在你原来的事件列表上,你就做好了。您的日历将显示重复发生的事件,但不会更明智。
希望能有所帮助。