【问题标题】:pass a list of dates to a JQuery calendar [duplicate]将日期列表传递给 JQuery 日历 [重复]
【发布时间】:2013-02-08 09:13:01
【问题描述】:
有谁知道如何将代码中的日期列表传递给日历,因此它将突出显示列表中的日期。谢谢
<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);
}
【问题讨论】:
标签:
jquery
asp.net
list
datetime
jquery-ui-datepicker
【解决方案1】:
最简单的解决方案是创建 asp.net 处理程序或将日期作为 json 对象返回的网页,并在 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
}
}
});
后面的代码看起来像这样。您必须添加 System.Web.Extensions.dll 作为参考才能使用 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();
}`