Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过时间戳日期的数据库json列表设置日期选择器的禁用日期_Javascript_C#_Jquery_Model View Controller_Datepicker - Fatal编程技术网

Javascript 通过时间戳日期的数据库json列表设置日期选择器的禁用日期

Javascript 通过时间戳日期的数据库json列表设置日期选择器的禁用日期,javascript,c#,jquery,model-view-controller,datepicker,Javascript,C#,Jquery,Model View Controller,Datepicker,我想通过数据库中的列表禁用flatpicker插件中的日期。这是从数据库中获取它们的代码 public List<DateTime> DisablingDates() { List<DateTime> dates = new List<DateTime>(); var groups = OrderContext.Collection().GroupBy(o => o.DueDate);

我想通过数据库中的列表禁用flatpicker插件中的日期。这是从数据库中获取它们的代码

public List<DateTime> DisablingDates()
        {
            List<DateTime> dates = new List<DateTime>();
            var groups = OrderContext.Collection().GroupBy(o => o.DueDate);
            foreach (var g in groups)
            {
                if (g.Count() == 2)
                {
                    var val = g.Key.Date;
                    val.ToString("dd/MMM/yyyy");
                    dates.Add(val);
                }
            }            
            return dates;
        }

然后我尝试用ajax方法使用JsonResult操作,插件再次停止工作

 $("#datepicker").flatpickr({
            enableTime: false,
            dateFormat: "d/M/Y",
            defaultDate: new Date().fp_incr(2),
            minDate: new Date().fp_incr(2),
            maxDate: new Date().fp_incr(90),
            disable: function (date) {
                 $.ajax({
                    url: '@Url.Action("GetReservedDates", "Basket")',
                    type: "GET",
                    success: function (result) {
                        var fulldate = date.getDate() + "/" + (date.getMonth() + 1) + "/" + date.getFullYear();
                        if ($.inArray(fulldate, result) === -1) {
                            return false;
                        } else {
                            return true;
                        }
                    }
                 });
            }

        });
JsonResult操作

[HttpGet]
        public JsonResult GetReservedDates()
        {
            var dates = orderService.DisablingDates();
            return Json(new { dates }, "text/x-json", JsonRequestBehavior.AllowGet);
        }
这是我目前正在尝试的第二个插件。 我该怎么办


提前感谢。

我找到了使插件停止工作的原因。。禁用选项在数组括号[]之间使用函数。 然后,为了将时间戳日期转换为可读日期,我将该值编辑为仅包含从/Date(1599166800000)/到1599166800000之间的毫秒。 最后,插件按预期禁用了数据库检索日期

$("#datepicker").flatpickr({
            enableTime: false,
            dateFormat: "d/M/Y",
            defaultDate: new Date().fp_incr(2),
            minDate: new Date().fp_incr(2),
            maxDate: new Date().fp_incr(90),
            disable: [Ddates],
            onMonthChange: [Ddates],           
        });
                function Ddates (date) {
                    var DisabledDates  = @Html.Raw(Json.Encode(ViewBag.DisabledDates));
                    var array = [];
                    $.each(DisabledDates, function (index, value) {
                        value = value.replace("\\", "")
                        value = value.replace("/Date(", "")
                        value = value.replace(")\/", "")
                        var date1 = new Date(parseInt(value, 10)).toLocaleDateString();
                        array.push(date1);
                    });
                        date = date.toLocaleDateString();
                        return ($.inArray(date, array) != -1);
            }
[HttpGet]
        public JsonResult GetReservedDates()
        {
            var dates = orderService.DisablingDates();
            return Json(new { dates }, "text/x-json", JsonRequestBehavior.AllowGet);
        }
$("#datepicker").flatpickr({
            enableTime: false,
            dateFormat: "d/M/Y",
            defaultDate: new Date().fp_incr(2),
            minDate: new Date().fp_incr(2),
            maxDate: new Date().fp_incr(90),
            disable: [Ddates],
            onMonthChange: [Ddates],           
        });
                function Ddates (date) {
                    var DisabledDates  = @Html.Raw(Json.Encode(ViewBag.DisabledDates));
                    var array = [];
                    $.each(DisabledDates, function (index, value) {
                        value = value.replace("\\", "")
                        value = value.replace("/Date(", "")
                        value = value.replace(")\/", "")
                        var date1 = new Date(parseInt(value, 10)).toLocaleDateString();
                        array.push(date1);
                    });
                        date = date.toLocaleDateString();
                        return ($.inArray(date, array) != -1);
            }