Пометка определенных встреч как недоступных для выбора в планировщике Kendo для ASP.NET MVC - PullRequest
0 голосов
/ 27 февраля 2019

Планировщик загружает несколько встреч.Некоторые из этих встреч должны быть доступны только для чтения, и пользователь не должен иметь возможность их выбирать.Однако некоторые встречи они должны иметь возможность выбирать и редактировать.Логика для этого определяется на сервере и передается как поле в полезной нагрузке при загрузке.

Я попытался подключиться к нескольким событиям на стороне клиента, таким как Edit, MoveStart и ResizeStart, и отменить редактированиеСобытия.Это работает, однако я бы хотел, чтобы пользователь даже не смог выбрать событие.

Я не вижу никаких событий на стороне клиента для выбора, который я могу отменить.

Я попыталсяперебирать встречи в DataBound, но не знал, как предотвратить выбор в этой точке.

1 Ответ

0 голосов
/ 07 марта 2019

Я предлагаю использовать пользовательский шаблон события с кнопкой и кнопкой редактирования и установить редактируемые и выбираемые свойства как ложные для планировщика.


<script id="event-template" type="text/x-kendo-template">
  <div>
     <label>Title: #: title #<label>
     # if (allowEdit) { #
      <button style="margin-left:50px;" onclick="editSchedulerEvent(#:id#)">Edit</button>
     # } #
  </div>
  <div>
      Attendees:
      # for (var i = 0; i < resources.length; i++) { #
        #: resources[i].text #
      # } #
  </div>
</script>
<div id="scheduler"></div>
<script>
  function editSchedulerEvent(id){
    var scheduler = $("#scheduler").data("kendoScheduler");
    var event = scheduler.dataSource.get(id);
    scheduler.editEvent(event);
  }

$("#scheduler").kendoScheduler({
  date: new Date("2013/6/6"),
  eventTemplate: $("#event-template").html(),
  editable: false,
  selectable: false,
  dataSource: [
    {
      id: 1,
      start: new Date("2013/6/6 08:00 AM"),
      end: new Date("2013/6/6 09:00 AM"),
      title: "Interview",
      atendees: [1,2],
      allowEdit: true
    },
    {
      id: 2,
      start: new Date("2013/6/6 10:00 AM"),
      end: new Date("2013/6/6 11:00 AM"),
      title: "Interview",
      atendees: [3,4],
      allowEdit: false
    }
  ],
  resources: [
    {
      field: "atendees",
      dataSource: [
       { value: 1, text: "Alex" },
       { value: 2, text: "Bob" },
        { value: 3, text: "John" },
       { value: 4, text: "Jane" }
      ],
      multiple: true
    }
  ]
});
</script>
</body>
</html>
...