Я начал использовать планировщик KendoUI в своем проекте MVC, я хотел бы добавить в планировщик представление по году, которое недоступно из коробки.После поисков способов сделать это я нашел много людей, говорящих о создании собственного представления и переопределении диапазонов дат планировщика.
Проблема в том, что я не уверен, как заставить это работатьтак как многие темы старые и ссылки не работают.Есть несколько примеров, но я нашел, что они неясны, и поэтому я надеюсь, что смогу получить некоторую помощь здесь.
Первое, что я сделал, это создал мой планировщик на своей странице, используя синтаксис бритвы..
@(Html.Kendo().Scheduler<Melina.ViewModels.TimelineVessels>()
.Name("scheduler")
.Date(new DateTime(2013, 6, 13))
.StartTime(new DateTime(2013, 6, 13, 7, 00, 00))
.Views(views =>
{
views.TimelineView(timeline => timeline.EventHeight(50));
views.TimelineMonthView(timeline =>
{
timeline.StartTime(new DateTime(2013, 6, 13, 00, 00, 00));
timeline.EndTime(new DateTime(2013, 6, 13, 00, 00, 00));
}).Selected(true);
views.CustomView("YearView");
})
.Group(group => group.Resources("Cars").Orientation(SchedulerGroupOrientation.Vertical))
.Resources(resource =>
{
resource.Add(m => m.CarId)
.Title("Car")
.Name("Cars")
.DataTextField("Title")
.DataValueField("CarId")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("ReadCars", "Report");
});
});
})
.DataSource(d => d
.Model(m =>
{
m.Id(f => f.HireId);
m.Field(f => f.Title).DefaultValue("No Title");
m.Id(f => f.CarId);
m.Field(f => f.Title).DefaultValue("No Title");
})
.Read("ReadHires", "Report")
)
)
Планировщик показывает список автомобилей, а затем все их периоды проката за месяцы, проблема в том, что некоторые автомобили сдаются в аренду месяцами, а планировщик показывает очень детальные дни.и раз.Чтобы обойти это, я хочу добавить этот пользовательский вид, вы можете увидеть вышеописанное деинфедирование как YearView
.
Вот мой javascript, который обрабатывает это, где я изо всех сил пытаюсь заставить вещи работать.
var YearView = kendo.ui.MultiDayView.extend({
nextDate: function () { return kendo.date.nextDay(this.startDate()); },
options: { selectedDateFormat: "{0:D} - {1:D}" },
name: "YearView",
calculateDateRange: function () {
var start = this.options.date,
idx, length,
dates = [];
for (idx = 0, length = 12; idx < length; idx++) {
dates.push(start);
start = kendo.date.nextDay(start);
}
this._render(dates);
}
});
Этот код был взят из примера, но это трехдневное представление, кто-нибудь знает, как я мог бы создать свой собственный годовой вид, либо отрегулировав вышеуказанный скрипт или создав новый?
TIA