在JQUERY UI完整日历中进行更改时,有没有人知道如何更新我的基础数据源(sql server DB)?
我启用了FullCalendar插件,并且正在使用数据填充,我启用了拖放选项并且它们正常工作,显然这些更改没有提交到数据库,我不确定如何去做,也许某种AJAX调用我的控制器中的方法?虽然我不确定如何实现这一点。
希望问题不是太模糊,只是在真正推动正确的方向之后。
干杯
解决方案:
所以最终解决方案看起来像这样:
ASP.NET MVC 5 CSHTML PAGE
@section scripts{
<script type="text/javascript">
// <![CDATA[
$(document).ready(function () {
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
theme: false,
defaultView: 'month',
editable: false,
events: "/controller/GetEvents/",
editable: true,
eventDrop: function (event, delta, revertFunc) {
var id = event.id;
var start = event.start;
$.ajax({
url: "/controller/FullCalendarEventDrop/",
type: "POST",
data: {id: id, start: start}
});
}
});
});
// ]]></script>
}
控制器:
[HttpPost]
public void FullCalendarEventDrop(int id, string start)
{
DateTime startDt = DateTime.ParseExact(start, "ddd MMM d hh:mm:ss UTC yyyy", null).ToUniversalTime();
OBJECT OBJECTNAME = db.OBJECT.Find(id);
_OBJECTNAME.StartDate = startDt;
_OBJECTNAME.EndDate = startDt;
db.Entry(OBJECTNAME).State = EntityState.Modified;
db.SaveChanges();
}
所以目前还没有错误处理,但我会把它放进去,最重要的是更新工作。
谢谢
:d
答案 0 :(得分:0)
您可以使用eventDrop回调并通过AJAX将数据传递给控制器。
从文档修改......
$('#calendar').fullCalendar({
events: [
// events here
],
editable: true,
eventDrop: function(event, delta, revertFunc) {
$.ajax({
url: "/MyController/FullCalendarEventDrop",
data: event
});
}
});
控制器
[HttpPost]
public JsonResult FullCalendarEventDrop(int id, DateTime start, DateTime end)
{
//Get the event by the id and update its start/end
}
答案 1 :(得分:0)
要扩展Shoe的评论,您可能还想使用&#39; eventResize&#39;如果允许您的用户操纵日期,则会发生此事件。写下你的编辑&#34;通过ajax并通过JSON返回以查看所做的编辑。在你的cal初始化中:
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay',
},
events: '/SampleController/GetEvents',
控制器(编辑后调用)或重新初始化cal load:
[HttpGet]
public JsonResult GetEvents()
{
var events = _buildSampleData.GetEventList();
return Json(events, JsonRequestBehavior.AllowGet);
}
我会在编辑后调用它。