The event handler receives an argument of type AppointmentOperationEventArgs containing data related to this event.
The following
AppointmentOperationEventArgs 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. |
Recurring |
Gets or sets a value indicating if the appointment is recurring. |
The AllowAppointmentDelete event is fired when the SchedulerControl verifies the ability to remove an appointment. Such verification is required to update the command state (DevExpress.Utils.Commands.ICommandUIState) of the commands available for the end-user. Hence the AllowAppointmentDelete event for a particular appointment occurs not only once, but more often than expected.
Handle the AllowAppointmentDelete event to restrict end-users from deleting an appointment. The appointment to delete can be accessed via the DevExpress.XtraScheduler.AppointmentEventArgs.Appointment property. To deny end-users the ability to delete an appointment , set the DevExpress.XtraScheduler.AppointmentOperationEventArgs.Allow property to false.
We advise that you use only simple checks to determine whether an appointment can be deleted. Methods which require user response are not suitable when handling this event.
Note that the AllowAppointmentDelete event enables you to prevent an appointment from being deleted by end-user actions. To protect an appointment from deletion in all situations, handle the DevExpress.XtraScheduler.SchedulerStorageBase.AppointmentDeleting event.

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 DevExpress.XtraScheduler.SchedulerOptionsCustomization.AllowAppointmentEdit and DevExpress.XtraScheduler.SchedulerOptionsCustomization.AllowAppointmentDelete properties to DevExpress.XtraScheduler.UsedAppointmentType.Custom, and handle the AllowAppointmentEdit and AllowAppointmentDelete events to implement custom logic for editing appointments.
C# |
using DevExpress.XtraScheduler;
private void schedulerControl1_AllowAppointmentDelete(object sender,
AppointmentOperationEventArgs e) {
e.Allow = CanUserModifyThisAppointment(e.Appointment);
}
private void schedulerControl1_AllowAppointmentEdit(object sender,
AppointmentOperationEventArgs e) {
e.Allow = CanUserModifyThisAppointment(e.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);
}
|
VB |
Imports DevExpress.XtraScheduler
Private Sub schedulerControl1_AllowAppointmentDelete(ByVal sender As Object, _
ByVal e As AppointmentOperationEventArgs)
e.Allow = CanUserModifyThisAppointment(e.Appointment)
End Sub
Private Sub schedulerControl1_AllowAppointmentEdit(ByVal sender As Object, _
ByVal e As AppointmentOperationEventArgs)
e.Allow = CanUserModifyThisAppointment(e.Appointment)
End Sub
Private Function CanUserModifyThisAppointment(ByVal apt As Appointment) As Boolean
Dim obj As Object = apt.CustomFields("Owner")
If obj Is Nothing Then
Return True
End If
Dim appointmentOwner As String = obj.ToString()
If appointmentOwner = String.Empty Then
Return True
End If
Return (String.Compare(appointmentOwner, tbUserName.Text, True) = 0)
End Function
|