Skip to main content

DevExpress v24.2 Update — Your Feedback Matters

Our What's New in v24.2 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

How to: Prevent End-Users from Editing Appointments

  • 2 minutes to read

In some real-life applications it might be necessary to prevent end-users from editing (copying, deleting, dragging, etc.) the appointments shown within the SchedulerControl. For instance, it’s necessary to show all the appointments to end-users as read-only.

To do this you should access the customization settings via the SchedulerControl.OptionsCustomization property to implement end-user restrictions in your scheduling application. The following restrictions are possible in the XtraScheduler:

Restriction Description
SchedulerOptionsCustomization.AllowAppointmentConflicts Specifies whether an end-user is allowed to share the schedule time between two or more appointments.
SchedulerOptionsCustomization.AllowAppointmentCopy Specifies whether an end-user is allowed to copy appointments.
SchedulerOptionsCustomization.AllowAppointmentCreate Specifies whether an end-user is allowed to create new appointments.
SchedulerOptionsCustomization.AllowAppointmentDelete Specifies whether an end-user is allowed to delete appointments.
SchedulerOptionsCustomization.AllowAppointmentDrag Specifies whether an end-user is allowed to drag and drop appointments to another time slot or date.
SchedulerOptionsCustomization.AllowAppointmentDragBetweenResources Specifies whether an end-user is allowed to drag and drop appointments between resources.
SchedulerOptionsCustomization.AllowAppointmentEdit Specifies whether an end-user is allowed to edit appointments.
SchedulerOptionsCustomization.AllowAppointmentMultiSelect Specifies whether an end-user is allowed to select more than one appointment simultaneously.
SchedulerOptionsCustomization.AllowAppointmentResize Specifies whether an end-user is allowed to change the time boundaries of appointments.
SchedulerOptionsCustomization.AllowInplaceEditor Specifies whether an in-place editor can be activated for an appointment.

You can set a corresponding value as required, e.g. set it ot UsedAppointmentType.None to prohibit a particular action for all appointment types, or set it to UsedAppointmentType.Recurring to allow it for recurring appointments only.

If you set one of OptionsCustomization.Allow* properties to UsedAppointmentType.Custom, a related Allow* event will fire, in which you can decide how to handle a particular case. For example, to prevent user Sam from dragging appointments, you can use the following code:

schedulerControl1.OptionsCustomization.AllowAppointmentDrag = UsedAppointmentType.Custom;
schedulerControl1.AllowAppointmentDrag += new AppointmentOperationEventHandler
(schedulerControl1_AllowAppointmentDrag);

// ...

void schedulerControl1_AllowAppointmentDrag(object sender, AppointmentOperationEventArgs e) {
    if (user_id == "Sam") e.Allow = false;
}