Kendo MVC Grid Ограничить столбец даты привязки диапазоном - PullRequest
0 голосов
/ 05 марта 2020

Сводка:

Я пытаюсь ограничить «выбираемые» даты для нового столбца даты записей либо -30, либо + 30 дней от текущей даты. Я бы предпочел, чтобы все даты были отключены (то есть вы не можете их выбрать), кроме тех, которые в течение 30 дней.

Проблема:

Так что, когда вы смотрите на интерфейс Kendo В примерах выбора даты я заметил, что вы можете добавить «Отключенные даты»: Kendo Date Picker Отключение дат . Поэтому я сначала подумал, что могу просто передать все даты, которые я хочу отключить, в сумку просмотра и использовать функцию JS для их отключения. Выпуск сборщика дат может go вернуться довольно давно. Поэтому я не собираюсь генерировать так много дат и вынужден передавать их в сумку представления.

Текущая сетка

Это моя текущая сетка, которую я использую для привязки к данным.

@(Html.Kendo()
   .Grid<ProjectManager.Services.TimeEntryViewModel>()
   .Name("currentUserTimeEntries")
   .Columns(column =>
   {
       column.ForeignKey(m => m.ProjectId, (System.Collections.IEnumerable)ViewData["currentUserProjects"], "Id", "Name").Width("200px");
       column.ForeignKey(m => m.WorkClassificationId, (System.Collections.IEnumerable)ViewData["teamsClassifications"], "Id", "Classification").Width("200px");
       column.Bound(c => c.TimeWorked).Width("100px");
       ///THIS IS THE COLUMN I NEED TO RESTRICT DATES ON
       column.Bound(c => c.CreatedDate).Format("{0:MM/dd/yyyy}").Width("100px");
       column.Bound(c => c.Description);

   })
   .Pageable()
   .Editable(editable => editable.Mode(GridEditMode.InCell))
   .Sortable(x => x.Enabled(true))
   .Filterable()
   .HtmlAttributes(new { style = "height: 500px" })
   .Scrollable(x => x.Enabled(true))
   .ToolBar(tools => { tools.Create().Text("Add New Time Entry"); tools.Save(); tools.Search(); tools.Excel(); })
   .DataSource(ds =>
   {
       ds.Ajax()
           .ServerOperation(false)
           .Events(e => e.Error("onError"))
           .Sort(sort => sort.Add("CreatedDate").Descending()) // <-- initial sort expression
           .Model(model =>
           {
               model.Id(x => x.Id);
           })
           .PageSize(50)
           .Update(update => update.Action("UpdateTimeEntry", "TimeEntry"))
           .Create(create => create.Action("CreateTimeEntry", "TimeEntry"))
           .Read(read => read.Action("GetCurrentTimeEntriesForUser", "TimeEntry"));
   })

)

Вопрос

Так есть ли какой-то другой способ, возможно, просто включить определенный диапазон дат? Я гуглял это некоторое время и не могу найти хорошее решение. Если у вас есть какие-либо вопросы или предложения, пожалуйста, дайте мне знать!

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...