Установите для проверки диапазона значение Kendo Datepicker в ASP.NET MVC

Я использую Kendo UI ASP.NET MVC с Entity Framework 5.0. Я использовал средство выбора даты кендо и установил проверку на стороне модели и успешно запустил все проверки, кроме Range. Поэтому я хочу установить диапазон выбора даты на -7 и +7 дней, а также отключить другие даты, кроме -7 и +7 с сегодняшнего дня.

Мой код:

HTML:

@Html.Kendo().DatePickerFor(model => model.MyDate)

Модель:

[Required]
        [DataType(DataType.Date)]
        [Range(-7,7,ErrorMessage = "Date must be within -7 to +7 days.")]
        [Display(Name = "My Date")]
        public DateTime? MyDate { get; set; }

Я использовал вышеуказанную проверку диапазона, но не помог.

Пожалуйста, кто знает, помогите мне решить эту проблему, спасибо заранее.


person 3 rules    schedule 27.06.2016    source источник


Ответы (2)


Поскольку вы используете MVC, вы можете ограничить диапазон выбираемых дат следующим образом:

@(Html.Kendo().DatePicker()
    .Name("datepicker")
    .Min(DateTime.Now.AddDays ( -7 ))
    .Max(DateTime.Now.AddDays ( 7 ))
    .Value(DateTime.Today)
)

И «вероятно» вы должны проверить на стороне сервера что-то вроде этого the-jquery-ui-date-picker-and-adding-a-jquery-validate-date-range-validator/#daterange" rel="nofollow">пример.

person Bakudan    schedule 27.06.2016
comment
Да, я также делал это, но выполнял вызов сервера каждый раз, когда я хочу его на стороне клиента, поэтому это может быть бесполезно для меня, но да, я могу считать, что это одно из решений. Спасибо, Бакудан. - person 3 rules; 28.06.2016
comment
Спасибо за помощь, дакудан оценил. - person 3 rules; 28.06.2016

Попался...

Я получил решение, выполнив ручное тестирование, как показано ниже, и получил решение:

HTML:

@Html.Kendo().DatePickerFor(model => model.MyDate).Name("Mydatepicker")

Скрипт:

$(document).ready(function () {

    var datefilter = new Date();
    var mindate = new Date();
    mindate.setDate(datefilter.getDate() - 7);
    var maxdate = new Date();
    maxdate.setDate(datefilter.getDate() + 7)

 $("#Mydatepicker").kendoDatePicker({
            max: new Date(maxdate),
            min: new Date(mindate)
        });
});
person 3 rules    schedule 28.06.2016