corelibraries-devexpress-dot-xtrascheduler-dot-scheduleroptionscustomization-5cddb0f9.md
Gets or sets whether a user is allowed to drag and drop appointments to another time slot or date.
Namespace : DevExpress.XtraScheduler
Assembly : DevExpress.XtraScheduler.v25.2.Core.Desktop.dll
NuGet Package : DevExpress.Scheduler.CoreDesktop
[DefaultValue(UsedAppointmentType.All)]
public UsedAppointmentType AllowAppointmentDrag { get; set; }
<DefaultValue(UsedAppointmentType.All)>
Public Property AllowAppointmentDrag As UsedAppointmentType
| Type | Default | Description |
|---|---|---|
| UsedAppointmentType | All |
A value that specifies the type of appointment that can be dragged.
|
Available values:
| Name | Description |
|---|---|
| None |
The action can’t be applied to any appointments.
| | Recurring |
The action can be applied to recurring appointments only.
| | NonRecurring |
The action can be applied to non-recurring appointments only.
| | All |
The action can be applied to all the appointments.
| | Custom |
The action is applied according to the custom method specified by the corresponding AllowAppointment~ or CustomAllowAppointment~ event of the SchedulerControl.
|
You can access this nested property as listed below:
| Library | Object Type | Path to AllowAppointmentDrag |
|---|---|---|
| WinForms Controls | SchedulerControl |
.OptionsCustomization .AllowAppointmentDrag
| | ASP.NET Bootstrap Controls | BootstrapScheduler |
.OptionsEditing .AllowAppointmentDrag
| | ASP.NET MVC Extensions | SchedulerSettings |
.OptionsCustomization .AllowAppointmentDrag
| | ASP.NET Web Forms Controls | ASPxScheduler |
.OptionsCustomization .AllowAppointmentDrag
|
Users are allowed to drag an appointment to another time slot or date. Use the AllowAppointmentDrag property to specify the type of appointments that can be dragged.
If the AllowAppointmentDrag property is set to Custom, use the SchedulerControl.AllowAppointmentDrag event to specify whether an appointment can be dragged.
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);
}
Imports DevExpress.XtraScheduler
' ...
Private Sub schedulerControl1_AllowAppointmentDelete(ByVal sender As Object, _
ByVal e As AppointmentOperationEventArgs)
' Allow only the user who created this appontment to delete it.
e.Allow = CanUserModifyThisAppointment(e.Appointment)
End Sub
Private Sub schedulerControl1_AllowAppointmentEdit(ByVal sender As Object, _
ByVal e As AppointmentOperationEventArgs)
' Allow only the user who created this appontment to modify it.
e.Allow = CanUserModifyThisAppointment(e.Appointment)
End Sub
' Determine if the current user is the same
' as the one who created the specified appointment
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
The code below shows how to handle the SchedulerControl.AllowAppointmentDrag event to prevent all-day appointments from being dragged.
schedulerControl1.OptionsCustomization.AllowAppointmentDrag = UsedAppointmentType.Custom;
private void SchedulerControl1_AllowAppointmentDrag(object sender, AppointmentOperationEventArgs e) {
e.Allow = !e.Appointment.AllDay;
}
schedulerControl1.OptionsCustomization.AllowAppointmentDrag = UsedAppointmentType.Custom
Private Sub SchedulerControl1_AllowAppointmentDrag(ByVal sender As Object, ByVal e As AppointmentOperationEventArgs) _
Handles schedulerControl1.AllowAppointmentDrag
e.Allow = Not e.Appointment.AllDay
End Sub
See Also
SchedulerOptionsCustomization Class