2016-03-29 10 views
0

ich gelesen, dass ich so etwas wie dieseGNU GPL v2 Dhtmlx ASP.net C# - Wie durch eine Klasse zurückgegebenen Daten aus der Datenbank (JSON) lesen

scheduler.parse([ 
    { start_date:"2013-05-13 6:00", end_date:"2009-05-13 8:00", text:"Event 1"}, 
    { start_date:"2013-06-09 6:00", end_date:"2009-06-09 8:00", text:"Event 2"} 
],"json"); 

auf http://docs.dhtmlx.com/scheduler/api__scheduler_parse.html

tun können, aber ich wollen nicht alle relevanten Daten manuell setzen, ich will es Daten aus meiner Datenbank lesen

so was ich getan habe ist, dass ich diese Methode auf Data.ashx

public string getJson(int ID) 
     { 
      XXXContext db = new XXXContext(); 
      var YYYY = db.Y.Where(p => p.YYYID == ID).Include(p => p.ZZZZ).ToList(); 
      List<CalendarEvent> cEvent = new List<CalendarEvent>(); 

      foreach (var evnt in YYYYY) 
      { 
       cEvent.Add(new CalendarEvent() { id = evnt.AAAAID, text = evnt.PPPPP.FirstName.ToString() + " " + evnt.PPPPP.MiddleName.ToString() + " " + evnt.PPPPP.LastName.ToString() + "<br />" + 
        evnt.Reason.ToString() + "<br />" + evnt.Details.ToString(), start_date = evnt.XXXXXDateTime??DateTime.Now, end_date = evnt.XXXXXDateTime??DateTime.Now }); 
      } 
      IEnumerable<CalendarEvent> toIEnum = cEvent; 

      string json = new JavaScriptSerializer().Serialize(toIEnum); 
      return json; 
     } 

Gibt eine JSON formatierte Ausgabe

aber ich weiß nicht, was als nächstes zu tun <

das ist, was ich auf meiner HTML-Datei bekam, die ich mit IFrame auf meiner aspx Klasse namens

<script type="text/javascript" charset="utf-8"> 
    function init() { 
     scheduler.config.multi_day = true; 

     scheduler.config.xml_date="%Y-%m-%d %H:%i"; 
     scheduler.init('scheduler_here',new Date(2015,0,10),"week"); 
     scheduler.load("../../Data.ashx"); 
    } 

Antwort

0

Sie müssen Datenformat in Argumente von scheduler.load angeben, sonst wäre es xml standardmäßig erwarten:

scheduler.load("../../Data.ashx", "json"); 

Beachten Sie außerdem, dass die Clientseite erwartet, dass die Daten start_date/end_date im Format scheduler.config.xml_date config ("% Y-% m-% d% H:% i" gemäß Ihrem Code) serialisiert werden, während JavaScriptSerializer dies tut stringify Datetime in etwas folgendes:

"start_date": "/Date(1355496152000)/" 

gibt es ein paar mögliche Abhilfen, zum Beispiel, können Sie eine Methode überschreiben, die manuell Daten und analysieren sie analysiert:

scheduler.templates.xml_date = function (dateString) { 
    var timestamp = dateString.substring(6, dateString.length - 2); 
    return new Date(timestamp * 1); 
}; 

scheduler.load("../../Data.ashx", "json");