DxScheduler.AppointmentStartDragging Event
Fires when a user starts dragging an appointment.
Namespace: DevExpress.Blazor
Assembly: DevExpress.Blazor.v24.1.dll
NuGet Package: DevExpress.Blazor
Declaration
[Parameter]
public EventCallback<SchedulerAppointmentOperationEventArgs> AppointmentStartDragging { get; set; }
Event Data
The AppointmentStartDragging event's data class is SchedulerAppointmentOperationEventArgs. The following properties provide information specific to this event:
Property | Description |
---|---|
Appointment | Specifies the target appointment. |
Cancel | Gets or sets a value indicating whether the event should be canceled. Inherited from CancelEventArgs. |
Remarks
To cancel the operation, use the event argument’s Cancel property. If you need to access the target appointment, use the event argument’s Appointment property.
The following code snippet doesn’t allow users to move appointments that are scheduled outside work hours.
<DxScheduler StartDate="@DateTime.Today"
DataStorage="@DataStorage"
GroupType="SchedulerGroupType.Resource"
AppointmentStartDragging="OnStartDragging">
...
</DxScheduler>
<DxPopup @bind-Visible="@AlertVisible"
CloseOnEscape="true"
CloseOnOutsideClick="true"
ShowCloseButton="true"
HeaderText="Warning!"
BodyText="The appointment can belong only to the current user and can start and end only during the working time interval.">
</DxPopup>
@code {
...
DxSchedulerTimeSpanRange WorkTime = new DxSchedulerTimeSpanRange(TimeSpan.FromHours(9), TimeSpan.FromHours(18));
bool AlertVisible = false;
int CurrentUserResourceId = 0;
bool IsCurrentUsersAppointment(DxSchedulerAppointmentItem apt) => apt.ResourceId as int? == CurrentUserResourceId;
bool IsInWorkTime(DxSchedulerAppointmentItem apt) =>
apt.AllDay ||
apt.Start - apt.Start.Date >= WorkTime.Start
&& WorkTime.End >= apt.End - apt.End.Date;
void OnStartDragging(SchedulerAppointmentOperationEventArgs args) {
if (!IsCurrentUsersAppointment(args.Appointment) || !IsInWorkTime(args.Appointment)) {
args.Cancel = true;
AlertVisible = true;
}
}
See Also