SchedulerControl.AllowInplaceEditor Event

Occurs when an end-user tries to invoke an appointment's in-place editor and the SchedulerOptionsCustomization.AllowInplaceEditor property is set to Custom.

Namespace: DevExpress.XtraScheduler

Assembly: DevExpress.XtraScheduler.v20.1.dll

Declaration

public event AppointmentOperationEventHandler AllowInplaceEditor
Public Event AllowInplaceEditor As AppointmentOperationEventHandler

Event Data

The AllowInplaceEditor event's data class is AppointmentOperationEventArgs. The following properties provide information specific to this event:

Property Description
Allow Gets or sets a value indicating whether an end-user is allowed to perform a particular action.
Appointment Gets the appointment for which the event was raised. Inherited from AppointmentEventArgs.
Recurring Gets or sets a value indicating if the appointment is recurring.

Remarks

Handle the AllowInplaceEditor event to manually decide whether to allow an end-user to invoke the in-place editor for an appointment or not. Note that the appointment to edit can be accessed via the AppointmentEventArgs.Appointment property. To prevent the in-place editor from being invoked, set the AppointmentOperationEventArgs.Allow property to false.

Examples

This example demonstrates how to implement custom rules for editing and deleting appointments. The code below allows an appointment to be edited only by its owner (the end-user who created it). To do this it's necessary to set the SchedulerOptionsCustomization.AllowAppointmentEdit and SchedulerOptionsCustomization.AllowAppointmentDelete properties to UsedAppointmentType.Custom, and handle the SchedulerControl.AllowAppointmentEdit and SchedulerControl.AllowAppointmentDelete events to implement custom logic for editing appointments.

using DevExpress.XtraScheduler;
// ...

private void schedulerControl1_AllowAppointmentDelete(object sender, 
    AppointmentOperationEventArgs e) {
   // Allow only the user who created this appontment to delete it.
   e.Allow = CanUserModifyThisAppointment(e.Appointment);
}
private void schedulerControl1_AllowAppointmentEdit(object sender, 
    AppointmentOperationEventArgs e) {
   // Allow only the user who created this appontment to modify it.
   e.Allow = CanUserModifyThisAppointment(e.Appointment);
}
// Determine if the current user is the same 
// as the one who created the specified appointment 
bool CanUserModifyThisAppointment(Appointment apt) {
   object obj = apt.CustomFields["Owner"];
   if (obj == null)
      return true;
   string appointmentOwner = obj.ToString();
   if (appointmentOwner == String.Empty)
      return true;
   return (String.Compare(appointmentOwner, tbUserName.Text, true) == 0);
}
See Also