Javascript error when trying to return data for a schedule

Hi,

I have this error when trying to return data for a schedule: "Uncaught TypeError: Cannot read property 'StartTime' of undefined" in ej.web.all.min.js.

My controller action looks like this:

public JsonResult Batch(EditParams param)
        {
            var data = new List<ScheduleData>();
            data.Add(new ScheduleData() { Subject = "Testing", StartTime = DateTime.Now, EndTime = DateTime.Now.AddDays(3), AllDay = true, Owner = 1 });
            return Json(data.AsEnumerable(), JsonRequestBehavior.AllowGet);
        }

The class ScheduleData looks like this:

public class ScheduleData
    {
        public int Id;

        public string Subject;

        public string Location;

        public System.DateTime StartTime;

        public System.DateTime EndTime;

        public string Description;

        public System.Nullable<int> Owner;

        public System.Nullable<int> Priority;

        public System.Nullable<byte> Recurrence;
        
        public string Categorize;
       
        public System.Nullable<bool> AllDay;        
    }

And the Schedule code is this:

 @(Html.EJ().Schedule("Schedule1")
    .Width("100%")
    .Height("525px")
    .CellWidth("40px")
    .Orientation(Syncfusion.JavaScript.Orientation.Horizontal)
    .ShowCurrentTimeIndicator(false)
    .CurrentDate(DateTime.Now)
    .Views(views)
    //.AllowDragDrop(true)
    //.ShowAllDayRow(true)
    .Resources(res => { res.Field("OwnerId").Title("Owner").Name("Owners").AllowMultiple(true).ResourceSettings(flds => flds.Datasource((IEnumerable<object>)ViewBag.Owners).Text("text").Id("id").Color("color")).Add(); })
    .Group(gr => { gr.Resources(ViewBag.Resources); })
    //.AppointmentSettings(fields => fields.Datasource(ViewBag.datasource)
    .AppointmentSettings(fields => fields.Datasource(ds => ds.URL("/Projects/GetData").CrudURL("/Projects/Batch"))
        .Id("Id")
        .Subject("Subject")
        .StartTime("StartTime")
        .EndTime("EndTime")
        .Description("Description")
        .AllDay("true")
        .Recurrence("Recurrence")
        .RecurrenceRule("RecurrenceRule"))
    )

The error comes after I try to insert a new appoitment, so after the return from the Batch action.

Thank you!

1 Reply

KK Karthigeyan Krishnamurthi Syncfusion Team February 13, 2017 06:05 AM UTC

Hi Cornel,   
  
Thank you for contacting Syncfusion Support.   
  
We suspect that appointment was not saved properly in database, which could have caused the issue. We have prepared a CRUD sample with the provided code example, which can be downloaded from:   
  
In the above sample, when an appointment is added/edited/deleted, it will be reflected in the database too. Kindly refer to the below code example used in the sample.   
<Code> 
public JsonResult Batch(EditParams param) 
        { 
            if (param.action == "insert" || (param.action == "batch" && param.added != null))          // this block of code will execute while inserting the appointments 
            { 
                 
            } 
            if (param.action == "remove" || param.deleted != null)                                        // this block of code will execute while removing the appointment 
            { 
                
            } 
            if ((param.action == "batch" && param.changed != null) || param.action == "update")   // this block of code will execute while updating the appointment 
            { 
                
            } 
            IEnumerable data = new DataClasses1DataContext().ScheduleDatas.Take(500); // nw.Appointment.Take(5); 
            return Json(data, JsonRequestBehavior.AllowGet); 
        } 
</Code> 
 
Regards, 
Karthigeyan 


Loader.
Up arrow icon