我在 jQuery datepicker 中禁用某些日期时遇到问题。我在 webmethod 内的字符串数组中成功地从数据库中检索日期。现在通过一个 java 脚本函数,我试图禁用这些日期。页面上还有另一个日期选择器,因此也没有显示。
$.ajax({
type: "POST",
url: "attendentry.aspx/GetALLPresentsDates",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
var result = msg.d;
var unavailableDates = [];
var len = result.length;
for (var i = 0; i < len; i++) {
unavailableDates.push(result[i]);
}
},
error: function (msg) {
}
});
function unavailable(date) {
// var unavailableDates = ["9-17-2013", "9-20-2013", "10-1-2013"]
var dmy = (date.getMonth() + 1) + "-" + date.getDate() + "-" + date.getFullYear();
if ($.inArray(dmy, unavailableDates) == -1) {
return [true, ""];
} else {
return [false, "", "Unavailable"];
}
}
$(function () {
$("#datepicker1").datepicker({
minDate: '-30',
maxDate: '0',
dateFormat: 'mm-dd-yy',
beforeShowDay: unavailable,
onSelect: function (dateText, inst) {
$("#<%=txtPresent.ClientID%>").val(dateText);
}
});
});
WebeMethod 是:
[WebMethod]
public static string[] GetALLPresentsDates()
{
DataTable dt = new DataTable();
List<String> dates = new List<String>();
SqlConnection con = new SqlConnection(Helper.ConnectionString);
SqlCommand cmd = new SqlCommand("SELECT Emp_PresentDate FROM Emp_Attendance", con);
SqlDataAdapter da;
da = new SqlDataAdapter(cmd);
dt.Clear();
da.Fill(dt);
for (int i = 0; i < dt.Rows.Count - 1; i++)
{
dates.Add((String.Format("{0:M-d-yyyy}", dt.Rows[i][0])));
}
return dates.ToArray();
}