有没有办法在 kendo ui 调度程序中禁用特定事件?

Posted

技术标签:

【中文标题】有没有办法在 kendo ui 调度程序中禁用特定事件?【英文标题】:Is there a way to disable a specific event in kendo ui scheduler? 【发布时间】:2014-10-01 07:34:21 【问题描述】:

我正在使用 Kendo UI、js 和调度程序组件。

我的问题是,是否有办法从调度程序中禁用特定事件。

我找到this,但这会禁用调度程序中的所有事件。我只想禁用一个特定的事件。代码应该是这样的>

function disableEvents()

    var data = $("#scheduler").data("kendoScheduler").dataSource.data();
    data.forEach(function(event)
          if(event.ID='2') 
          
               event.disable = true; //I have tried with event.editable = true;
          
    );

我找不到该属性可编辑或禁用,或类似的东西。也许有一种方法可以使用 jquery 禁用它。有人可以帮帮我吗?

谢谢!

【问题讨论】:

【参考方案1】:

使用事件事件的preventDefault方法:

$("#scheduler").kendoScheduler(
    date: new Date("2013/6/6"),
    views: ["day", "month"],
    dataSource: [
        id: 1,
        start: new Date("2013/6/6 08:00 AM"),
        end: new Date("2013/6/6 09:00 AM"),
        title: "Interview editable"
    , 
        id: 2,
        start: new Date("2013/6/6 06:00 AM"),
        end: new Date("2013/6/6 07:00 AM"),
        title: "Interview not editable"
    ],
    edit: function (e) 
        if (e.event.id === 2) 
            e.preventDefault();
        
    
);

(demo)

【讨论】:

【参考方案2】:

您将需要执行 Kendo 限制示例中指定的所有事件,并在您的条件不成功时防止默认行为。

供参考:Kendo Restriction Events Description

如果您想禁用任何事件的任何更改,您将需要处理所有事件(即编辑、保存、调整大小、移动)。事件如下:

    resize: function(e) 
        if (e.event.meetingID = 1) 
            this.wrapper.find(".k-marquee-color").addClass("invalid-slot");
            e.preventDefault();
        
    ,
    move: function(e) 
        if (e.event.meetingId = 1) 
            this.wrapper.find(".k-event-drag-hint").addClass("invalid-slot");
        
    ,
    save: function(e) 
        if (e.event.meetinID = 1) 
            e.preventDefault();
        
    ,
   edit: function (e) 
        if (e.event.meetinID = 1) 
            e.preventDefault();
        
    

我已根据您的情况更新了剑道限制示例:Demo

【讨论】:

以上是关于有没有办法在 kendo ui 调度程序中禁用特定事件?的主要内容,如果未能解决你的问题,请参考以下文章

Kendo UI Scheduler:营业时间?

Kendo uI datepicker 禁用类型和选择

如何在 Kendo UI 数据源中禁用“读取”请求缓存

在 kendo ui 的调度程序导航中更改日期格式

过滤 kendo ui 调度程序

编辑网格时,如何按行禁用特定字段? Kendo UI ASP.Net MVC 包装器