更改Kendo UI Scheduler中事件的宽度

Kar*_*sen 4 kendo-ui kendo-scheduler

我正在用HTML5和javascript创建一个网站.其中一个站点包含Kendo UI Scheduler.我理解调度程序及其工作原理,并且我设法建立了一个包含一些事件的简单调度程序.现在,我的问题是我想改变事件被引入调度程序的方式; 我想将事件的大小更改为它们显示的列的一半大小.有没有简单的方法来执行此操作,还是我必须更改计算这些事件位置的Kendo代码?

Kar*_*sen 8

由于没有人可以为我解答这个问题,我发布了自己的解决方案:我尝试用CSS做这个,但是我无法让它工作.相反,我决定覆盖决定调度程序事件的Kendo UI代码.

        //Override kendo function for deciding events with
        kendo.ui.MultiDayView.fn._arrangeColumns = function (element, top, height, slotRange) {
            var startSlot = slotRange.start;

            element = { element: element, slotIndex: startSlot.index, start: top, end: top + height };

            var columns,
                slotWidth = startSlot.clientWidth,
                eventRightOffset = slotWidth * 0.10,
                columnEvents,
                eventElements = slotRange.events(),
                slotEvents = kendo.ui.SchedulerView.collidingEvents(eventElements, element.start, element.end);

            slotRange.addEvent(element);

            slotEvents.push(element);

            columns = kendo.ui.SchedulerView.createColumns(slotEvents);

            //This is where the magic happens
            var columnWidth = slotWidth / 2; 
            //Original code: var columnWidth = (slotWidth - eventRightOffset) / columns.length;
            //This is where the magic ends

            for (var idx = 0, length = columns.length; idx < length; idx++) {
                columnEvents = columns[idx].events;

                for (var j = 0, eventLength = columnEvents.length; j < eventLength; j++) {
                    columnEvents[j].element[0].style.width = columnWidth - 4 + "px";
                    columnEvents[j].element[0].style.left = (this._isRtl ? this._scrollbarOffset(eventRightOffset) : 0) + startSlot.offsetLeft + idx * columnWidth + 2 + "px";
                }
            }
    };
Run Code Online (Sandbox Code Playgroud)