Skip to main content

DevExpress v24.2 Update — Your Feedback Matters

Our What's New in v24.2 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

DxScheduler.AppointmentStartResizing Event

Fires when a user starts resizing an appointment.

Namespace: DevExpress.Blazor

Assembly: DevExpress.Blazor.v24.2.dll

NuGet Package: DevExpress.Blazor

#Declaration

C#
[Parameter]
public EventCallback<SchedulerAppointmentOperationEventArgs> AppointmentStartResizing { get; set; }

#Event Data

The AppointmentStartResizing 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 resize appointments that are scheduled outside of work hours.

Razor
<DxScheduler StartDate="@DateTime.Today"
             DataStorage="@DataStorage"              
             GroupType="SchedulerGroupType.Resource"
             AppointmentStartResizing="OnStartResizing">
    ...
</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 OnStartResizing(SchedulerAppointmentOperationEventArgs args) {
        if (!IsCurrentUsersAppointment(args.Appointment) || !IsInWorkTime(args.Appointment)) {
            args.Cancel = true;
            AlertVisible = showAlert;
        }
    }
}

Run Demo: Scheduler - User Action Customization

See Also