The commandCallBack() method can be used to send custom command with custom data to the server side.
Typical Use
- Reload the event data
- Switch the visible time range
- Refresh the control after changing the resources
- Filtering the visible events
How It Works
When you invoke the commandCallBack() function on the client-side DayPilot Scheduler object, it will fire the Commandevent handler on the server-side using an AJAX call.
In the Command event handler you should call Update() after doing your work and reloading the events using DataBind().
See also: Update() method
Parameters
- command (string) - custom command type string
- data (any JavaScript object) - custom data that will be sent to the server-side Command handler
The data parameter will be translated into JsonData class - see also Sending custom data with CallBack.
Reference
ASP.NET WebForms
Example (switching to a specified year)
.aspx
<a href="javascript:dps1.commandCallBack('year', 2013);">Next</a>
.aspx.cs:
protected void DayPilotScheduler1_Command(object sender, DayPilot.Web.Ui.Events.CommandEventArgs e) { switch (e.Command) { case "year": DayPilotScheduler1.StartDate = new DateTime((int)e.Data, 1, 1); DayPilotScheduler1.Days = Year.Days(DayPilotScheduler1.StartDate.Year); break; // ... } // ... DayPilotScheduler1.DataBind(); DayPilotScheduler1.Update(CallBackUpdateType.Full); }
ASP.NET MVC
View
<a href="javascript:dps.commandCallBack('next');">Next</a> <a href="javascript:dps.commandCallBack('previous');">Previous</a> <a href="javascript:dps.commandCallBack('delete', { id: 123});">Delete Event with ID=123</a>
Controller (SchedulerController.cs)
class Dps : DayPilotScheduler { protected override void OnCommand(CommandArgs e) { switch (e.Command) { case "refresh": UpdateWithMessage("Refreshed"); break; case "next": StartDate = StartDate.AddYears(1); Days = Year.Days(StartDate); Update(CallBackUpdateType.Full); break; case "previous": StartDate = StartDate.AddYears(-1); Days = Year.Days(StartDate); Update(CallBackUpdateType.Full); break; case "this": StartDate = Year.First(DateTime.Today); Days = Year.Days(StartDate); Update(CallBackUpdateType.Full); break; case "delete": string id = (string)e.Data["id"]; new EventManager(Controller).EventDelete(id); Update(CallBackUpdateType.EventsOnly); break; } } }