Missing setting "AllEvents" for mouse editing recurring events

Hi everybody,

   is there a setting "apply to series" for changing event data with the mouse ? If I change the time at a recurring event by mouse only this event is changed. In my app the events are room usings in a school schedule. Changing time or room usually referes to the whole series. Otherwhise the very handy mouse editing is useless for this application for recurring events.

   regards

      Uwe

3 Replies 1 reply marked as answer

AK Alagumeena Kalaiselvan Syncfusion Team July 27, 2020 03:42 PM UTC

Hi  Uwe, 
  
Thanks for contacting Syncfusion support. 
  
Query: Is there a setting “apply to series” for changing event data with the mouse? 
  
We have checked the above query and you can update the recurring event series by customizing the recurring event start and end time in Scheduler’s Dragged and Resized event. Refer the below code for that. 
  
<SfSchedule @ref="ScheduleObj" TValue="AppointmentData" Height="650px" SelectedDate="@(new DateTime(2020, 2, 14))"> 
    <ScheduleEventSettings DataSource="@DataSource"></ScheduleEventSettings> 
    <ScheduleEvents TValue="AppointmentData"  Dragged="DragEvent" Resized="OnResize"></ScheduleEvents> 
</SfSchedule> 
  
@code{ 
    SfSchedule<AppointmentData> ScheduleObj; 
    public async Task DragEvent(DragEventArgs<AppointmentData> args) 
    { 
        if(args.Data.RecurrenceID != null) 
        { 
            args.Cancel = true; 
            var data = await ScheduleObj.GetOccurrencesByID(args.Data.Id); 
            data[0].StartTime = new DateTime(data[0].StartTime.Year, data[0].StartTime.Month, data[0].StartTime.Day, args.Data.StartTime.Hour, args.Data.StartTime.Minute, args.Data.StartTime.Second); 
            data[0].EndTime = new DateTime(data[0].EndTime.Year, data[0].EndTime.Month, data[0].EndTime.Day, args.Data.EndTime.Hour, args.Data.EndTime.Minute, args.Data.EndTime.Second); 
            await ScheduleObj.SaveEvent(data[0], CurrentAction.EditSeries); 
        } 
    } 
    public async Task OnResize(ResizeEventArgs<AppointmentData> args) 
    { 
        if(args.Data.RecurrenceID != null) 
        { 
            args.Cancel = true; 
            var data = await ScheduleObj.GetOccurrencesByID(args.Data.Id); 
            data[0].StartTime = new DateTime(data[0].StartTime.Year, data[0].StartTime.Month, data[0].StartTime.Day, args.Data.StartTime.Hour, args.Data.StartTime.Minute, args.Data.StartTime.Second); 
            data[0].EndTime = new DateTime(data[0].EndTime.Year, data[0].EndTime.Month, data[0].EndTime.Day, args.Data.EndTime.Hour, args.Data.EndTime.Minute, args.Data.EndTime.Second); 
            await ScheduleObj.SaveEvent(data[0], CurrentAction.EditSeries); 
        } 
    } 
} 
  
Also, you can download this sample using the following link 
  
Kindly get back to us if you need further assistance. 
  
Regards 
Alagumeena.K 


Marked as answer

UH Uwe Hein July 28, 2020 02:48 PM UTC

Hi Alagumeena,

   your solution seems to do the trick.

    Thank you very much !!

       regards

         Uwe


VM Vengatesh Maniraj Syncfusion Team July 29, 2020 04:18 AM UTC

Hi Uwe, 

You are most welcome. 

Please get in touch with us if you need any further assistance. 

Regards, 
Vengatesh  


Loader.
Up arrow icon