Сводка:
Я пытаюсь ограничить «выбираемые» даты для нового столбца даты записей либо -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"));
})
)
Вопрос
Так есть ли какой-то другой способ, возможно, просто включить определенный диапазон дат? Я гуглял это некоторое время и не могу найти хорошее решение. Если у вас есть какие-либо вопросы или предложения, пожалуйста, дайте мне знать!
Спасибо