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