2013-02-22 12 views
6

hat jemand eine Idee, wie ich eine Liste von Daten in Code hinter einem Kalender übergeben kann, so wird es die Daten markieren, die in der Liste sind. dankeeine Liste von Daten an einen JQuery-Kalender übergeben

<script> 
     $(function() { 
     $("#datepicker").datepicker(); 
     }); 
    </script> 

    <p>Date: <input type="text" id="datepicker" /></p> 

Liste von hinten in Code gespeicherten Daten:

DateTime start = new DateTime(2013, 02, 20); 
     DateTime end = new DateTime(2013, 01, 11); 

     var dates = new List<DateTime>(); 

     for (var dt = start; dt <= end; dt = dt.AddDays(1)) 
     { 
      dates.Add(dt); 
     } 
+0

Scheint, wie Ihr ein reserviertes Schlüsselwort als Variablennamen verwenden. Ich hoffe, Sie werden auch eine Ajax-Abfrage verwenden, um diese Liste von Daten zu erhalten. Auch das könnte helfen. http://stackoverflow.com/questions/2385332/jquery-datepicker-highlight-dates – Musk

+0

Bitte beziehen Sie sich hier: [Wie die jquery Datepicker setzen einige Datum zu markieren] (http://stackoverflow.com/questions/7523653/wie-die-jquery-Datepicker picker~~POS=HEADCOMP-set-some-date-to-Highlight) Oder [jquery Datepicker picker~~POS=HEADCOMP Highlight Daten] (http://stackoverflow.com/questions/2385332/jquery-datepicker-highlight-dates) – Charlie

Antwort

1

Die einfachste Lösung wäre für Sie asp.net Handler oder eine Web-Seite zu erstellen, Gibt die Datumsangaben als JSON-Objekte zurück und verwendet sie für eine beforeShowDate-Funktion innerhalb des Datepickers:

Hier ist die einfache Implementierung:

var dates = []; //replace [] with ajax call to the page that returns the dates 
$("#datepicker").datepicker({ 
     dateFormat: "dd-mm-yyyy", 

     beforeShowDay: function (date) { 
      var available = $.inArray(date, dates) > -1; 

      if (available) { 
       return [1]; //return available date 
      } 
      else { 
       return [0]; //return not available 
      } 
     } 
}); 

-Code hinter etwa so aussehen würde. Sie haben System.Web.Extensions.dll als Referenz hinzufügen zu können, verwenden JavaScriptSerializer

protected void Page_Load(object sender, EventArgs e) 
    { 
     DateTime start = new DateTime(2013, 02, 20); 
     DateTime end = new DateTime(2014, 01, 11); 

     var dates = new List<string>(); 

     for (var dt = start; dt <= end; dt = dt.AddDays(1)) 
     { 
      dates.Add(dt.ToString("dd-MM-yyyy")); 
     } 

     Response.ContentType = "text/javascript"; 
     string json = new JavaScriptSerializer().Serialize(dates); 
     Response.Write(json); 
     Response.End(); 
    }` 
+0

Hey DZL, danke dass du dir die Zeit genommen hast zu antworten, hab einen Blick auf den Code geworfen und es scheint gut zu sein ... aber ich hatte keine Zeit auf dieser Seite und habe einen asp.net Kalender mit einem Tutorial benutzt (was ich zu der Zeit nicht wusste), mit dem Sie ausgewählte Daten markieren können ... http: //www.codeproject.com/Articles/7929/Highlighting-Wichtig-Daten-in-Kalender Nochmals vielen Dank für die Antwort – John

+0

Kein Problem, ich bin froh, dass ich helfen konnte .. –

Verwandte Themen