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.v24.2.dll
NuGet Package: DevExpress.Win.Scheduler
#Declaration
public event AppointmentOperationEventHandler AllowInplaceEditor
#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 Appointment |
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.
#Example
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);
}