Fullcalendar внешний идентификатор удаления идентификатора отброшенного элемента (ASP.NET MVC) - PullRequest
0 голосов
/ 07 сентября 2018

Я работаю в ASP.NET MVC. Моя проблема в том, что когда я помещаю внешний элемент в календарь, я хочу установить идентификатор, взятый из базы данных, в которую я поместил новую запись. Итак, я делаю это в событии drop для fullcalendar, передаю данные перетаскивания записи, затем на стороне сервера, с контроллером я вставляю информацию в БД и затем передаю с помощью json методу успеха идентификатор для обновления. упавший предмет У меня много шарков. Я нашел решения, которые создают новое событие (и я бы этого не делал), и другие решения, которые не работают. Это мой код:

JQUERY

    drop: function (date, jsEvent) {

        var currentRow = $(this);

        var Customer = currentRow.find("td:eq(0)").text();
        var Sign = currentRow.find("td:eq(1)").text();
        var Qta = currentRow.find("td:eq(2)").text();

        var rowdata = {
            'StartDate': date.format(),
            'Customer': Customer,
            'Sign': Sign,
            'Qta': Qta
        }

        $.ajax({
            type: 'post',
            data: rowdata,
            async: false,
            url: "/Home/SaveEventDrop",
            dataType: 'json',
            success: function (response) {
                 NewID = response.id;
            },
            failure: function (response) {
                alert(response.responseText);
            },
            error: function (response) {
                alert(response.responseText);
            }
        });

        $(this).remove();
        // HERE IS WHAT I WANT TO DO
        this.id = NewID;


    }

CONTROLLER

public ActionResult SaveEventDrop(string StartDate, string Customer, string Sign, string Qta)
    {
        SchedulerCalendar record = new SchedulerCalendar();

        //Formating the data
        Customer = Customer.Replace(System.Environment.NewLine, "").Trim();
        Sign = Sign.Replace(System.Environment.NewLine, "").Trim();
        Qta = Qta.Replace(System.Environment.NewLine, "").Trim();
        float FloatQta = float.Parse(Qta, CultureInfo.InvariantCulture.NumberFormat);

        record.customer = Customer;
        record.sign = Sign;
        record.qta = FloatQta;

        record.startDate = DateTime.Parse(StartDate);
        record.endDate = DateTime.Parse(StartDate);

        db.schedulerCalendars.Add(record);
        db.SaveChanges();


        return Json(record);
    }

Так что, если кто-то может дать мне понять, как получить отброшенный элемент в функции отбрасывания и как обновить идентификатор, я ему большое спасибо !!!

Спасибо

1 Ответ

0 голосов
/ 10 сентября 2018

Я нашел рабочее решение для своего iusse, надеюсь, что это поможет кому-то еще. Начиная с общего кода, я сохранил идентификатор, который json возвращает в переменную "localStorage", поэтому моя функция успеха AJAX будет:

    success: function (response) {
        localStorage.setItem("NewID", response.id);
    },

После этого я обнаружил, что функция "eventRecived" сработала после удаления. Здесь у вас есть элемент отброшенного предмета, и я установил здесь новый идентификатор:

    eventReceive: function (event) {
        event.id = localStorage.getItem("NewID");
    },

Если у кого-то есть лучшее решение, я буду благодарен. Пока это решение работает для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...