Связанный с планировщиком кендо? - PullRequest
0 голосов
/ 12 сентября 2018

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

Я прикрепил скриншот моей страницы ... здесь кнопка показывается несколько раз ... так что решение этой проблемы решить.

вот мой код для планировщика.

<script id="groupHeaderTemplate" type="text/x-kendo-template">
    <div>
        <input class="dropdowntree" />
    </div>
</script>
<div id="scheduler">

        @(Html.Kendo().Scheduler<BusSchedulingSystem.Web.ViewModels.SchedulerViewModel>()
                    .Name("scheduler")
                    .Date(DateTime.Now)
                    .StartTime(new DateTime(2018, 1, 1, 6, 00, 00))
                    .Views(views =>
                    {
                        views.TimelineMonthView(e => e.EventHeight(50));
                    })

                      .Timezone("Etc/UTC")
                    //.DataSource(d => d

                    //.Read(read => read.Action("", ""))
                    // )
                    //.GroupHeaderTemplate("#= BindDropDownTree(data)#")
                    .GroupHeaderTemplateId("groupHeaderTemplate")
                    .Group(group => group.Resources("Company").Orientation(SchedulerGroupOrientation.Vertical))
                     .Events(events => events.DataBound("onLoad"))

                     .Resources(resource =>
                     {
                         resource.Add(m => m.Company.Id)
                             .Title("Company")
                             .Name("Company")
                             .DataTextField("Name")
                             .DataSource(ds => ds
                                 .Custom()
                                 .Transport(transport => transport.Read(read => read.Action("Read", "Scheduler")))
                                 .Schema(schema => schema
                                     .Data("Data")
                                     .Total("Total")
                                 )
                             );


                     })


        )
    </div>

и моя функция загрузки:

<script>
    function onLoad(e) {
        debugger
        $('.k-nav-current').hide();
        var scheduler = $("#scheduler").data("kendoScheduler");
        var btn = $("<button class='k-button k-my-button'>Add new tour</button>")
        $('#scheduler').find('.k-scheduler-toolbar').append(btn);
         btn.click(function () {
         document.location = '@Url.Action("AddTour", "Tour")'
        });

          //var checkbox = $('<input checked type="checkbox" value="1">');
          //$('#scheduler').find('.k-scheduler-toolbar').append(checkbox);
    }
</script>

enter image description here

1 Ответ

0 голосов
/ 12 сентября 2018

Очевидно, у моего коллеги одна и та же проблема. Вот что я нашел в нашем хранилище:

var buttonSet = 0;
function addCreateButtonToAgendaView() {
    if (buttonSet === 0) {
        buttonSet = 1;

        var button = $("<a class='k-button k-my-button'>@Resources.BtnNewTask</a>");
        $(getScheduledTasksGrid().toolbar).append(button);
        button.click(function () { $("#scheduler").getKendoScheduler().addEvent(); });
    }
}

Таким образом, вы должны установить маркер, если вы уже добавили кнопку или нет.

(В моем первоначальном ответе я случайно заглянул в TreeList вместо планировщика. Извините.)

...