4

I've created a Kendo Scheduler that binds to a remote data source. The remote datasource is actually a combination of two separate data sources. This part is working okay.

Question is... is there any way to prevent certain events from being destroyed?

I've stopped other forms of editing by checking a certain field in the event's properties and calling e.preventDefault() on the edit, moveStart and resizeStart events if it should be read-only. This works fine, but I can't prevent deletes.

Any suggestions greatly appreciated.

4

3 に答える 3

5

remove イベントをキャプチャして、edit、moveStart、および reviseStart イベントと同様に処理するだけです。剣道スケジューラからイベントを削除するオプションが表示されます。バージョン 2013.3.1119.340 で表示およびキャプチャできます。

于 2014-01-28T01:42:30.543 に答える
4

removeそもそもユーザーがイベントに参加できないようにする方がよいと思います。removeたとえば「削除」キーを押すことでイベントを削除できるため、イベントの処理は引き続き有効です。

以下の例では、イベントに呼び出されたカスタム プロパティがあり、等しいイベントは削除できないと想定してcategorycategoryます"Holiday"

remove: function(e)
{
  var event = e.event;
  if (event.category === "Holiday")
  {
    e.preventDefault();
    e.stopPropagation();
  }
},
dataBound: function(e)
{
  var scheduler = e.sender;
  $(".k-event").each(function() {
    var uid = $(this).data("uid");
    var event = scheduler.occurrenceByUid(uid);
    if (event.category === "Holiday")
    {
      // use .k-event-delete,.k-resize-handle if you want to prevent also resizing
      $(this).find(".k-event-delete").hide();
    }
  });
},
edit: function (e) {
   var event = e.event;
   if (event.category === "Holiday")
   {
     e.container.find(".k-scheduler-delete").hide();
   }
}
于 2015-10-22T15:26:23.747 に答える
2

参考までに、これを行うことができます...

@(Html.Kendo().Scheduler<ScheduledEventViewModel>()
    .Name("scheduler")
    .Editable(e => e.Confirmation(false))
)

これにより、スケジューラのデフォルトの確認プロンプトが無効になります。次に、必要なアイテムに対して独自のプロンプトを表示できます。

また、

.Editable(e => e.Destroy(false))

イベント ウィンドウの X を削除することができます。この特定の例では、すべてのイベントで削除されますが、特定のイベントで削除する方法がある場合があります。

于 2014-04-24T21:14:25.753 に答える