This is a migrated thread and some comments may be shown as answers.

Scheduler and AppointmentUpdate doesn't refresh

0 Answers 101 Views
Scheduler
This is a migrated thread and some comments may be shown as answers.
Álvaro
Top achievements
Rank 1
Álvaro asked on 07 Jul 2020, 03:46 PM

I made this scheduler object:

<telerik:RadScheduler RenderMode="Lightweight" runat="server" ID="RadScheduler"
    FirstDayOfWeek="Monday" LastDayOfWeek="Sunday" OverflowBehavior="Expand" SelectedView="MonthView"
    DayStartTime="08:00:00" DayEndTime="19:59:59" WorkDayStartTime="08:00:00" WorkDayEndTime="20:00:00"
    ShowAllDayRow="true" ShowFullTime="true" AllowDelete="true" AllowEdit="true" AllowInsert="true"
    StartEditingInAdvancedForm="true" StartInsertingInAdvancedForm="true" EnableDescriptionField="true"
    EnableExactTimeRendering="true" ShowFooter="true"
    Reminders-Enabled="false" EnableRecurrenceSupport="false"
    OnAppointmentDataBound="RadScheduler_AppointmentDataBound"
    OnAppointmentInsert="RadScheduler_AppointmentInsert"
    OnAppointmentDelete="RadScheduler_AppointmentDelete"
    OnAppointmentUpdate="RadScheduler_AppointmentUpdate"
    AppointmentStyleMode="Auto" OnFormCreated="RadScheduler_FormCreated"
    DataKeyField="ID" DataSubjectField="Subject" DataStartField="Start" DataEndField="End" DataDescriptionField="Description" ToolTip="Subject">
    <AdvancedForm Modal="true"></AdvancedForm>
    <MultiDayView UserSelectable="false" />
    <TimelineView UserSelectable="false" />
    <MonthView UserSelectable="true" />
    <AgendaView UserSelectable="true" />
    <TimeSlotContextMenuSettings EnableDefault="true"></TimeSlotContextMenuSettings>
    <AppointmentContextMenuSettings EnableDefault="true"></AppointmentContextMenuSettings>
</telerik:RadScheduler>
 

When use, in code behind, the insert  ("RadScheduler_AppointmentInsert") or delete ("RadScheduler_AppointmentDelete") methods the scheduler refresh the appoitments correctly, withouth the necessity to use a rebind() option.

protected void RadScheduler_AppointmentInsert(object sender, AppointmentInsertEventArgs e)
{
    Bisiona.ACE.Eal.Tenders.Appointment appointment = new Bisiona.ACE.Eal.Tenders.Appointment();
    appointment.ID = null;
    appointment.Subject = e.Appointment.Subject;
    appointment.Start = e.Appointment.Start;
    appointment.End = e.Appointment.End;
    appointment.Description = e.Appointment.Description;
    appointment.Calendar = e.Appointment.Resources.GetResourceByType("Calendar").Key.ToString();
    appointment.Color = e.Appointment.Resources.GetResourceByType("Color").Key.ToString();
    if (TenderActual != null) {
        appointment.TenderID = TenderActual.TenderID;
        appointment.VersionID = TenderActual.Version.VersionID;
    }
    if (UsuarioActual != null)
    {
        appointment.RoleID = UsuarioActual.Role.RoleID;
        appointment.CodUsuario = UsuarioActual.CodUsuario;
    }
 
    bool result = false;
    string ID = string.Empty;
    result = Bisiona.ACE.Bll.Tenders.CalendarBo.SetCalendarAppointment(appointment, ref ID);
 
    if (result)
    {
        e.Appointment.ID = ID;
        e.Appointment.ToolTip = e.Appointment.Subject;
        ((Master)this.Page.Master).ShowNotification(GetLocalResourceObject("msgSaveAppointment").ToString(), "save");
    }
    else
    {
        e.Appointment.Visible = false;
        ((Master)this.Page.Master).ShowNotification(GetLocalResourceObject("msgErrorAppointment").ToString(), "error");
    }
}
protected void RadScheduler_AppointmentDelete(object sender, AppointmentDeleteEventArgs e)
{
    bool result = false;
    result = Bisiona.ACE.Bll.Tenders.CalendarBo.DelCalendarAppointment(e.Appointment.ID.ToString());
 
    if (result)
        ((Master)this.Page.Master).ShowNotification(GetLocalResourceObject("msgDeleteAppointment").ToString(), "save");
    else
        ((Master)this.Page.Master).ShowNotification(GetLocalResourceObject("msgErrorAppointment").ToString(), "error");
}

 

But, when use the update method ("RadScheduler_AppointmentUpdate") I recived correctly the Appointment and ModifiedAppoitment objects. 

In this method, I can persist the object in database but the scheduler doesn't refresh.

 

 

protected void RadScheduler_AppointmentUpdate(object sender, AppointmentUpdateEventArgs e)
{
    Bisiona.ACE.Eal.Tenders.Appointment appointment = new Bisiona.ACE.Eal.Tenders.Appointment();
    appointment.ID = e.Appointment.ID.ToString();
    appointment.Subject = e.ModifiedAppointment.Subject;
    appointment.Start = e.ModifiedAppointment.Start;
    appointment.End = e.ModifiedAppointment.End;
    appointment.Description = e.ModifiedAppointment.Description;
    appointment.Calendar = e.ModifiedAppointment.Resources.GetResourceByType("Calendar").Key.ToString();
    appointment.Color = e.ModifiedAppointment.Resources.GetResourceByType("Color").Key.ToString();
    if (TenderActual != null)
    {
        appointment.TenderID = TenderActual.TenderID;
        appointment.VersionID = TenderActual.Version.VersionID;
    }
    if (UsuarioActual != null)
    {
        appointment.RoleID = UsuarioActual.Role.RoleID;
        appointment.CodUsuario = UsuarioActual.CodUsuario;
    }
 
    bool result = false;
    result = Bisiona.ACE.Bll.Tenders.CalendarBo.UpdateCalendarAppointment(appointment);
 
    if (result)
        ((Master)this.Page.Master).ShowNotification(GetLocalResourceObject("msgSaveAppointment").ToString(), "save");
    else
        ((Master)this.Page.Master).ShowNotification(GetLocalResourceObject("msgErrorAppointment").ToString(), "error");
}

 

I try also to do a rebind at the end, but nothing happend. 

I want to call to database as less as possible.

Any Ideas?

Thank you so much.

 

 

No answers yet. Maybe you can help?

Tags
Scheduler
Asked by
Álvaro
Top achievements
Rank 1
Share this question
or