Skip to main content

DxScheduler.AppointmentRemoving Event

Fires before an appointment is removed from the AppointmentsSource object.

Namespace: DevExpress.Blazor

Assembly: DevExpress.Blazor.v23.2.dll

NuGet Package: DevExpress.Blazor

Declaration

[Parameter]
public EventCallback<SchedulerAppointmentOperationEventArgs> AppointmentRemoving { get; set; }

Event Data

The AppointmentRemoving 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

This event fires before modifications are applied to the Scheduler’s appointment collection. You can access a database or another service and validate that an appointment was deleted. If validation is successful, pass the appointment further. If not, you can cancel appointment removal (set the event argument’s Cancel property to true) and display an error message (the service is unavailable or the appointment conflicts with another appointment in the database).

To get information about the removed appointment, use the event argument’s Appointment property.

If the operation is not canceled, the appointment is removed from the AppointmentsSource object and the AppointmentRemoved event is raised.

<DxScheduler DataStorage="..."
             AppointmentRemoving="@AppointmentRemoving">
    <DxSchedulerDayView ShowWorkTimeOnly="true"></DxSchedulerDayView>
</DxScheduler>

@code {
    ...

    async Task AppointmentRemoving(SchedulerAppointmentOperationEventArgs e) {
        var response = await Http.DeleteAsync(fullWebAPIUrl + e.Appointment.Id);
        if (!response.IsSuccessStatusCode)
            e.Cancel = true;
    }
}    

View Example: Scheduler for Blazor - How to implement CRUD operations with a Web API Service

The code below uses the Cancel property to restrict non-Admin users from removing appointments from the DxScheduler.

<DxScheduler StartDate="@(new DateTime(2018, 10, 10))"
             DataStorage="@DataStorage" 
             AppointmentRemoving="(e) => AppointmentRemoving(e)">
</DxScheduler>

@if (PopupVisible) {
    <DxPopup HeaderText="Warning" CloseButtonClick="@(() => PopupVisible = false)">
        <p>You are not allowed to remove appointments from the scheduler. Please contact your system administrator for details.</p>
    </DxPopup>
}

@code {
    bool popupVisible = false;
    bool PopupVisible { get => popupVisible; set { popupVisible = value; InvokeAsync(StateHasChanged); } }

    void AppointmentRemoving(SchedulerAppointmentOperationEventArgs e) {
        if (currentUser.Role != "Admin") {
          e.Cancel = true;
          PopupVisible = true;
        }
    }
}

Run Demo: Scheduler - User Action Customization

See Also