与Kendo Scheduler相关吗?

时间:2018-09-12 08:04:32

标签: c# model-view-controller kendo-asp.net-mvc kendo-scheduler

我在MVC中使用kendo Scheduler,当我尝试在其中添加自定义按钮时,该按钮成功运行,但是当我调整窗口大小时,它多次显示给我。

我附上了我的页面的屏幕截图...此处多次显示此按钮。.解决该问题的方法是什么。

这是我的调度程序代码。

<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>

我的onload函数是:

<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 :(得分:1)

很显然,我的同事曾经遇到过同样的问题。这是我在存储库中找到的:

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而不是Scheduler。很抱歉。)