首页 > 解决方案 > 完整日历,添加新事件后如何呈现事件 ID

问题描述

所以我使用 Fullcalendar 作为我的日历解决方案。

我使用以下内容显示数据库中的事件:

events: "/Job/GetJobCalendarEvents?jobId=" + jobId

提供事件的代码如下:

        List<CalendarAppointment> apps = new List<CalendarAppointment>();
        foreach (var id in interviewDates)
        {
            apps.Add(new CalendarAppointment()
            {
                id = id.Id,
                title = "Selected Interview Date",
                start = Convert.ToDateTime(id.StartTime).ToString("s"),
                end = Convert.ToDateTime(id.EndTime).ToString("s"),
                allDay = false,
                dismiss = false,
                className = "css-cal js-cal-obj js-cal-obj-" + id.Id
            });
        }

        var appArr = apps.ToArray();

        var jsonResult = Json(appArr, JsonRequestBehavior.AllowGet);
        jsonResult.MaxJsonLength = int.MaxValue;
        return jsonResult;

所以这很好,事件在页面上渲染得很好。

我真正苦苦挣扎的是如何访问日历插槽本身的事件 ID。

我的日期点击事件如下:

            dateClick: function (info) {
                $.post("/Job/SaveInterview", { jobId: jobId, date: info.dateStr, duration: interviewDuration })
                 .done(function (data) {
                     calendar.refetchEvents();
                 });
            }

我需要的是能够单击该事件并使用 id 向我的控制器发出请求,以便我可以删除。

有人有什么想法吗?

标签: jqueryhtmlfullcalendar

解决方案


终于解决了,看下图。。。

            eventClick: function (info) {
                $.post("/Job/RemoveInterviewSlot", { slotId: Number(info.event.id) })
                    .done(function (data) {
                        calendar.refetchEvents();
                    });
            }

推荐阅读