将数据从数据库绑定到 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;
        }

调度脚本.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" ;
          }
         });
    }

调度程序对加载的数据有一些要求,查看文档中的文章。简而言之,输出数据必须至少包含以下四个属性,所有属性都区分大小写 - idstart_dateend_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

最新更新