2013-02-22 22 views
6

czy ktoś ma jakiś pomysł, jak mogę przekazać listę dat w kodzie do kalendarza, więc podświetli daty, które są na liście. dziękujęprzekazać listę dat do kalendarza JQuery

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

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

lista terminów zapisanych w kodzie za:

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

Wygląda na to, że używasz zastrzeżonego słowa kluczowego jako nazwy zmiennej. Mam nadzieję, że użyjesz również zapytania ajax, aby uzyskać listę dat. Również to może pomóc. http://stackoverflow.com/questions/2385332/jquery-datepicker-highlight-dates – Musk

+0

Proszę odnieść się tutaj: [W jaki sposób jquery Datepicker ustawić niektóre daty do wyróżnienia] (http://stackoverflow.com/questions/7523653/how-the-jquery-datepicker-set-some-date-to highlight) Lub [datownik jokery datować najważniejsze daty] (http://stackoverflow.com/questions/2385332/jquery-datepicker-highlight-dates) – Charlie

Odpowiedz

1

Najprostszym rozwiązaniem dla Ciebie byłoby stworzenie obsługi asp.net lub stronę internetową zwraca daty jako obiekty json i używa go w funkcji beforeShowDate wewnątrz datepicker:

Oto prosta implementacja:

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 
      } 
     } 
}); 

kod będzie wyglądał za coś takiego. Będziesz musiał dodać System.Web.Extensions.dll jako punkt odniesienia, aby móc używać 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

Hej DZL, dzięki za poświęcenie czasu na odpowiedź, spojrzał na kod i wydaje się być dobry ... ale nie miałem czasu na to, więc skończyło się przy użyciu kalendarza asp.net z samouczka (o której wtedy nie wiedziałem), która pozwala ci podkreślić wybrane daty ... http: //www.codeproject.com/Articles/7929/Highlighting-Important-Dates-in-Calendar Jeszcze raz dziękuję za odpowiedź – John

+0

Nie ma problemu, cieszę się, że mogłem pomóc .. –

Powiązane problemy