aspnet-devexpress-dot-web-dot-aspxscheduler-dot-aspxschedulerdatawebcontrolbase-20d90bb4.md
Fires when a round trip to the server has been initiated by a call to the client ASPxClientScheduler.PerformCallback method.
Namespace : DevExpress.Web.ASPxScheduler
Assembly : DevExpress.Web.ASPxScheduler.v25.2.dll
NuGet Package : DevExpress.Web.Scheduler
public event CallbackEventHandlerBase CustomCallback
Public Event CustomCallback As CallbackEventHandlerBase
The CustomCallback event's data class is CallbackEventArgsBase. The following properties provide information specific to this event:
| Property | Description |
|---|---|
| Parameter | Gets a string that contains specific information (if any) passed from the client side. |
The CustomCallback event allows any desired server-side processing to be performed in response to a call to the client ASPxClientScheduler.PerformCallback method.
Specific information passed from the client side can be obtained by the CallbackEventArgsBase.Parameter property.
Note that the necessary actions can be additionally performed on the client side before and after callback processing by using the ASPxClientScheduler.BeginCallback and ASPxClientScheduler.EndCallback client events.
The following code example illustrates how to use the ASPxSchedulerDataWebControlBase.CustomCallback event.
protected void ASPxScheduler1_CustomCallback(object sender, CallbackEventArgsBase e) {
ASPxScheduler scheduler = sender as ASPxScheduler;
if(e.Parameter == "ChangeCompletedStatus" && scheduler.SelectedAppointments.Count > 0) {
Appointment currentAppt = scheduler.SelectedAppointments[0];
currentAppt.CustomFields["LessonCompleted"] = !Convert.ToBoolean(currentAppt.CustomFields["LessonCompleted"]);
}
}
function OnMenuItemClicked(s, e) {
if (e.itemName == "ChangeCompletedStatus") {
clientScheduler.PerformCallback(e.itemName);
e.handled = true;
}
else if (e.itemName == "GroupByDate") {
clientScheduler.SetGroupType("Date");
}
else if (e.itemName == "GroupByResource") {
clientScheduler.SetGroupType("Resource");
}
else if (e.itemName == "GroupByNone") {
clientScheduler.SetGroupType("None");
}
}
...
<Appointments AutoRetrieveId="True" ResourceSharing="false">
<Mappings
AllDay="AllDay"
AppointmentId="ID"
Description="Description"
End="EndTime"
Label="Label"
Location="Location"
ResourceId="TeacherID"
RecurrenceInfo="RecurrenceInfo"
Start="StartTime"
Status="Status"
Subject="Subject"
Type="EventType" />
<CustomFieldMappings>
<dxwschs:ASPxAppointmentCustomFieldMapping Member="Completed" Name="LessonCompleted" ValueType="Boolean" />
<dxwschs:ASPxAppointmentCustomFieldMapping Member="CustomIsRecurring" Name="CustomRecurringFlag" ValueType="Boolean" />
<dxwschs:ASPxAppointmentCustomFieldMapping Member="CustomRecurringID" Name="CustomRecurringID" ValueType="String" />
<dxwschs:ASPxAppointmentCustomFieldMapping Member="CreatedBy" Name="ApptCreatedBy" ValueType="String" />
<dxwschs:ASPxAppointmentCustomFieldMapping Member="ModifiedBy" Name="ApptModifiedBy" ValueType="String" />
<dxwschs:ASPxAppointmentCustomFieldMapping Member="CreatedDate" Name="ApptCreatedDate" ValueType="DateTime" />
<dxwschs:ASPxAppointmentCustomFieldMapping Member="ModifiedDate" Name="ApptModifiedDate" ValueType="DateTime" />
</CustomFieldMappings>
</Appointments>
...
See Also
ASPxSchedulerDataWebControlBase Class