Привязать данные из базы данных к планировщику dhtmlx

Я использую расписание dhtmlx и проблема с загрузкой данных в представление планировщика. Я использую базу данных в первую очередь, поэтому у меня есть sp для получения всех деталей для отображения в планировщике,

public ContentResult Data()
        {
            var data = new SchedulerAjaxData(
                new Entities().tblAppTime.Select(e => new { e.SharedId, e.StartTime, e.Duration}));
           return data;}

вывод из данных var (во время отладки):

   {[{"SharedId":54,"StartTime":"09/14/2013 10:00","Duration":"09/14/2013 11:20"},{"SharedId":56,"StartTime":"09/14/2013 10:00","Duration":"09/14/2013 10:40"},
    {[{"SharedId":10,"StartTime":"09/12/2013 8:50","Duration":"09/12/2013 8:55"},{"SharedId":56,"StartTime":"09/14/2013 10:00","Duration":"09/14/2013 10:40"}]}

до сих пор я не могу привязать это в планировщике, пожалуйста, помогите.

Обновлять:

controller.cs
 sched.BeforeInit.Add("customeventbox()");


public ContentResult Data()
        {
         var scheduler = new DHXScheduler();
          scheduler.InitialDate=  DateTime.Today ;
            var data = new SchedulerAjaxData(new OnlineABEntities().GetAppointmentsDisplay(scheduler.InitialDate).Select(e => new {id= e.ID, e.ResourceID,start_date= e.StartTime,end_date= e.Duration, e.Color,text=""}));
            return data;
        }

schedscript.js

function customeventbox() {

    debugger;
    scheduler.attachEvent("onTemplatesReady", function () {
        alert("eventbox");
        scheduler.templates.event_header = function (start, end, ev) {
            alert("eventbox1");
                       return scheduler.templates.event_date(ev.StartTime) + "-" +
                       scheduler.templates.event_date(ev.Duration);
                   };
                   scheduler.templates.event_text = function (start, end, event) {
                       alert("eventboxtext");
                       debugger;
                       return "<br>" + event.ID + "<br>"+event.Duration +"<br>"+event.StartTime+"<br>"+event.Color+ "sampleready" + "<br>"+ "sampletext" ;
          }
         });
    }

person gs11111    schedule 14.09.2013    source источник


Ответы (1)


Планировщик предъявляет некоторые требования к загружаемым данным, см. статью в документации . Короче говоря, выходные данные должны содержать как минимум четыре следующих свойства, все с учетом регистра: id, start_date, end_date и текст.

Если вы получите такие данные, они будут отображаться в планировщике.

var data = new SchedulerAjaxData(
    new Entities().tblAppTime.Select(e => new { id = e.SharedId, start_date = e.StartTime, end_date = e.Duration, text = ""})
);

Обновить

на клиентских объектах данных будет иметь тот же набор свойств, что и у объектов, переданных в SchedulerAjaxData. Даты начала и окончания события являются объектами даты JS, поэтому перед выводом их следует преобразовать в строку.

scheduler.templates.event_text = function (start, end, event) {

    var dateToStr = scheduler.date.date_to_str("%H:%i");

    return "<br>" + event.id + 
        "<br>" + dateToStr(event.end_date) +
        "<br>" + dateToStr(event.start_date) +
        "<br>" + event.Color + 
        "sampleready" + "<br>"+ "sampletext" ;
}

вот подробности о маске формата даты http://docs.dhtmlx.com/scheduler/settings_format.html< /а>

person Paul    schedule 16.09.2013
comment
У меня более 4 столбцов в таблице, и мне нужны дополнительные значения, такие как имя ресурса, имя клиента, которые будут отображаться в окне событий (значения nvarchar), пожалуйста, помогите, - person gs11111; 17.09.2013