jQuery fullCalendar删除document.ready上的旧事件

问题描述 投票:0回答:1

我试图从我的数据库中删除超过30天的事件。我不想使用removeEvents,因为它只删除事件的呈现而不是数据库。或者我错了吗?

由于fullCalendar中没有deleteEvents函数,我不能像这样调用日历中的事件:示例:event.start.format()查找事件的开始日期,以便计算是否超过30天删除它。

我尝试制作一个自定义函数并将其添加到fullCalendar,如下所示:

//-------------- DELETE EVENTS OUDER DAN 30 DAGEN--------------
    deleteEvents: function(event, start, end){
        var form = $('#__AjaxAntiForgeryForm');
        var token = $('input[name="__RequestVerificationToken"]', form).val();
        var startDate = event.start.format("YYYY-MM-DD");
        var diff = newDate(Date.parse(start) - Date.parse(currentDate)); //start - current returns difference in milliseconds
        var days = diff / 1000 / 60 / 60 / 24; //get days
        if (days => 30) {
            $.ajax({
                type: "post",
                url: "@Url.Action("Delete","medewerker_melding")", //send to Action, Controller
                ajaxasync: true,
                data: {
                    id: event.id, //ID of event that needs to be deleted
                    __RequestVerificationToken: token //ValidateAntiForgeryToken
                },
                success: function () {
                    // redirect
                    window.location.replace('@Url.Action("Index", "medewerker_melding")');
                },
                error: function (data) {
                    alert("Fout: verouderde events niet kunnen verwijderen.\nError: " + data);
                }
            });
        }
    }

但是fullCalendar只是忽略了它,因为它在jQuery fullCalendar中不存在。我意识到这个脚本无论如何都不会有用,但除此之外。

所以我希望有更多jQuery fullCalendar和jQuery经验的人知道从$(document).ready数据库中删除超过30天的事件的方法。

谢谢。

jquery ajax asp.net-mvc-5 fullcalendar
1个回答
1
投票

在与@ ADyson交谈并且对我的代码发誓之后,我终于解决了它

public void DeleteOldEvents()
    {

        temphrmEntities db = new temphrmEntities();

        var datecheck = DateTime.Now.AddMonths(-1);

        var q = from n in db.medewerker_melding
                where n.datum_van < datecheck
                group n by n.ID into g
                select g.OrderByDescending(t => t.ID).FirstOrDefault();

        foreach (var ev in q)
        {
            db.medewerker_melding.Remove(ev);
        }
        db.SaveChanges();
    }
public ActionResult Index()
    {
        DeleteOldEvents();
        return View();
    }

谢谢@ADyson

© www.soinside.com 2019 - 2024. All rights reserved.