JavaScript
Inline editing activated on event click:
<div id="dp"></div> <script type="text/javascript"> var dp = new DayPilot.Scheduler("dp"); dp.eventClickHandling = "Edit"; dp.onEventEdited = function(args) { dp.message("Event text changed to " + args.newText); }; // ... dp.init(); </script>
"Create-and-edit" feature:
dp.onTimeRangeSelected = function(args) { var e = new DayPilot.Event({ start: args.start, end: args.end, id: DayPilot.guid(), resource: args.resource, text: "", tags: {justCreated: true} }); dp.events.add(e); dp.clearSelection(); dp.events.edit(e); }; dp.onEventEdit = function(args) { if (args.e.tag("justCreated")) { if (args.canceled || args.newText === "") { dp.events.remove(args.e); } args.e.data.tags.justCreated = false; } };
Note that args.canceled is available in onEventEdit and onEventEdited since version 8.1.1914.
See also:
- DayPilot.Scheduler.eventClickHandling
- DayPilot.Scheduler.onEventEdit
- DayPilot.Scheduler.onEventEdited
Demo:
ASP.NET WebForms
Client side
<DayPilot:DayPilotScheduler runat="server" id="DayPilotScheduler1" ... EventClickHandling="Edit" EventEditHandling="CallBack" OnEventEdit="DayPilotScheduler1_EventEdit" />
Server side
protected void DayPilotScheduler1_EventEdit(object sender, DayPilot.Web.Ui.Events.EventEditEventArgs e) { UpdateEventText(e.Id, e.NewTest); // your method DayPilotScheduler1.DataSource = LoadData(); // your method DayPilotScheduler1.DataBind(); DayPilotScheduler1.Update(); }
ASP.NET MVC
Client side:
@Html.DayPilotScheduler("dps", new DayPilotSchedulerConfig { BackendUrl = ResolveUrl("~/Scheduler/Backend"), ... EventClickHandling = EventClickHandlingType.Edit,
EventEditHandling = EventEditHandlingType.CallBack })
Server side:
protected override void OnEventEdit(EventEditArgs e) { new EventManager(Controller).UpdateText(e.Id, e.NewText); UpdateWithMessage("Event updated."); }