我正在使用ASP.NET MVC解决方案。我的问题是,当我将一个外部项目放入日历时,我想设置从数据库中取得的ID,我已经放置了新记录。所以我所做的是在fullcalendar的drop事件中,传递记录拖动的数据,然后在服务器端,用控制器我在DB中插入信息然后我用json传递给成功方法id更新丢弃的项目。我有很多东西。我找到了创建新事件的解决方案(我不会这样做),以及其他不起作用的解决方案。这是我的代码:
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);
}
所以,如果有人可以让我了解如何在drop函数中获取被删除的元素,以及如何更新id,我会非常感谢他!
谢谢
我为我的iusse找到了一个有效的解决方案,希望能帮助别人。从共享代码开始,我保存了json返回到“localStorage”变量的ID,因此我的AJAX成功函数将是:
success: function (response) {
localStorage.setItem("NewID", response.id);
},
在此之后,我发现在删除后触发了“eventRecived”功能。在这里你有被删除项目的元素,我在这里设置了新的ID:
eventReceive: function (event) {
event.id = localStorage.getItem("NewID");
},
如果有人有更好的解决方案,我将不胜感激。现在这个解决方案适合我。