Back to Devexpress

SchedulerOptionsCustomization.AllowAppointmentDragBetweenResources Property

corelibraries-devexpress-dot-xtrascheduler-dot-scheduleroptionscustomization-ca278d01.md

latest7.0 KB
Original Source

SchedulerOptionsCustomization.AllowAppointmentDragBetweenResources Property

Gets or sets whether a user is allowed to drag and drop appointments between resources.

Namespace : DevExpress.XtraScheduler

Assembly : DevExpress.XtraScheduler.v25.2.Core.Desktop.dll

NuGet Package : DevExpress.Scheduler.CoreDesktop

Declaration

csharp
[DefaultValue(UsedAppointmentType.All)]
public UsedAppointmentType AllowAppointmentDragBetweenResources { get; set; }
vb
<DefaultValue(UsedAppointmentType.All)>
Public Property AllowAppointmentDragBetweenResources As UsedAppointmentType

Property Value

TypeDefaultDescription
UsedAppointmentTypeAll

An UsedAppointmentType enumeration value that specifies the type of appointment that the action can be applied to.

|

Available values:

NameDescription
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.

|

Property Paths

You can access this nested property as listed below:

LibraryObject TypePath to AllowAppointmentDragBetweenResources
WinForms ControlsSchedulerControl

.OptionsCustomization .AllowAppointmentDragBetweenResources

| | ASP.NET Bootstrap Controls | BootstrapScheduler |

.OptionsEditing .AllowAppointmentDragBetweenResources

| | ASP.NET MVC Extensions | SchedulerSettings |

.OptionsCustomization .AllowAppointmentDragBetweenResources

| | ASP.NET Web Forms Controls | ASPxScheduler |

.OptionsCustomization .AllowAppointmentDragBetweenResources

|

Remarks

By default, end-users are allowed to drag and drop appointments between the resources currently visible in the scheduling area (if more than one resource is displayed). Use the AllowAppointmentDragBetweenResources property to control the availability of such functionality to end-users with respect to an appointment’s specific type.

Note

If the AllowAppointmentDragBetweenResources property is set to UsedAppointmentType.Custom, then whether an end-user is allowed to drag and drop appointments between resources or not is decided in the SchedulerControl.AllowAppointmentDragBetweenResources event handler.

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.

csharp
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);
}
vb
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

See Also

SchedulerOptionsCustomization Class

SchedulerOptionsCustomization Members

DevExpress.XtraScheduler Namespace