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

时间:2014-08-07 22:04:10

标签: javascript jquery events kendo-ui kendo-scheduler

我正在使用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来禁用它。有人能帮助我吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

使用事件事件的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

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