6

コードビハインドの日付のリストをカレンダーに渡す方法を誰かが知っているので、リストにある日付が強調表示されます。ありがとうございました

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

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

コードビハインドに保存されている日付のリスト:

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

1 に答える 1

2

最も簡単な解決策は、日付を json オブジェクトとして返す asp.net ハンドラーまたは Web ページを作成し、datepicker 内の beforeShowDate 関数で使用することです。

簡単な実装は次のとおりです。

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

コードビハインドは次のようになります。JavaScriptSerializer を使用できるようにするには、参照として System.Web.Extensions.dll を追加する必要があります。

    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();
    }`
于 2013-02-25T21:45:35.843 に答える