Как сделать годовой обзор на планировщике KendoUI? - PullRequest
0 голосов
/ 14 февраля 2019

Я начал использовать планировщик 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

1 Ответ

0 голосов
/ 05 августа 2019

Одним из решений может быть создание настраиваемого представления путем расширения представления «Временная шкала».

Затем переопределите метод «calcDateRange» для отображения полного года.

Перефразировав аналогичныйответ от этого сообщения на форуме на сайте Telerik.

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