Кендо Планировщик событий DatePicker

Как я могу установить событие для элемента управления DatePicker даты начала и окончания Kendo Scheduler? Я хочу добавить некоторую логику, когда дата начала или окончания изменяется из элемента управления DatePicker, но я не знаю, как это сделать.

Я попытался связать событие, как показано ниже, но у меня это не работает:

start: { 
   type: "date",
   from: "StartDate",
   validation: { required: true },
   event: { change: "onStartDateChange('start')" }
 }

person Dhwani    schedule 05.05.2015    source источник


Ответы (3)


Вы можете выбрать эти DatePicker и добавить свою новую функцию, когда планировщик инициирует событие edit.

вот фрагмент кода, который вам нужно добавить

$("#scheduler").kendoScheduler({
  edit: scheduler_edit // add on scheduler edit events
  //remove for clarity
});

затем вам нужно найти DatePicker компонентов с помощью jquery и связать их с новой функцией. В то время как Scheduler всплывающее окно редактирования предоставляет 2 типа разных средств выбора даты, вам нужно тщательно выбрать, как DatePicker или DateTimePicker

function scheduler_edit(e) {
  console.log("edit");
  var startDatePicker = $("input[name=start][data-role=datepicker]").data().kendoDatePicker;
  startDatePicker.bind("change", newFuncForDatePicker);
}

function newFuncForDatePicker(e) {
   console.log(this.value());
}

полный пример вы можете найти в этом dojo

person Dion Dirza    schedule 06.05.2015
comment
Ваше додзе не загружается. - person Dhwani; 07.05.2015
comment
додзе не найдено Snippet not found The snippet may have been deleted by the author, or the URL might be incorrect. - person layonez; 01.10.2015

Я думаю, что ваш datePicker не привязан к планировщику кендо. Если вы изменили какую-то дату и добавили эту дату в другой datePicker, вы можете использовать его, как в этом примере. Это моя функция редактирования, вы можете использовать функцию редактирования или другие функции, как вам нравится:

 edit: function (e) {
        //get date from event
         var getDateFromEvent = e.event.start;//or you can use different types of date like that
         var datePicker = $("[name=signUpDueDate]").data("kendoDatePicker");
         datePicker.value(getDateFromEvent).format("MM/DD/YYYY"));                                         
         datePicker.trigger("change");
};

Это ваш контроллер. Тогда вы можете использовать такой html

 <div class="col-xs-12 col-sm-3 form-group">
   <div data-container-for="earlySignupDate">
      <input id="signUpDueDate" name="signUpDueDate" class="pull-left" type="text" data-type="date" data-role="datepicker" data-bind="value: SignUpDueDate" />
  </div>
</div>
person Sundar    schedule 30.09.2015

Как это:

<script>
$("#scheduler").kendoScheduler({
  edit: function(e)
  {
    // clone for input[name=end]
    e.container.find("input[name=start]")
     .data()
     .kendoDateTimePicker.bind("change", function(e) {
        var value = this.value(); 
        // value has the new datetime
        console.log(value);
    });
  }
});  
</script>

Загляните в мое додзё: http://dojo.telerik.com/@svejdo1/AWoNU

person Ondrej Svejdar    schedule 27.10.2015