kendo Datepicker: Предотвратить закрытие средства выбора при нажатии на дату

Когда я меняю дату в сборщике, сборщик скрывается. Как можно пропустить это поведение в kendo ui datePicker


person 3nath    schedule 24.06.2014    source источник


Ответы (3)


Вы можете заменить метод изменения для DateView средства выбора даты, чтобы он не закрывал всплывающее окно:

var datePicker = $("#sampleDate").kendoDatePicker({}).getKendoDatePicker();

datePicker.dateView.options.change = function () {
    datePicker._change(this.value());
};

(демонстрация)

person Lars Höppner    schedule 24.06.2014
comment
хорошее решение, правда не знаю, как оно работает, ха-ха. Любая идея о том, как это можно сделать с помощью обычного @(Html.Kendo().DatePicker()? - person CSharper; 25.06.2014
comment
@CSharper, вы можете изменить эти внутренние компоненты только с помощью JS; проблема в том, что вы не знаете, когда элементы управления кендо закончили загрузку (по крайней мере, я не знаю, есть ли способ), чтобы вы могли изменить виджет; Я думаю, вы могли бы использовать событие открытия средства выбора даты и изменить this.dateView.options.change таким же образом всякий раз, когда открывается средство выбора. - person Lars Höppner; 25.06.2014
comment
@CSharper на самом деле, вы можете использовать тот же код, просто поместите его в готовый блок jQuery и поместите его после кода, который инициализирует ваш выбор даты - person Lars Höppner; 26.06.2014

Просто выполните e.preventDefault() в событии закрытия.

$("#datepicker").kendoDatePicker({
    close: function(e) {
        e.preventDefault(); //prevent popup closing
    }
});

Демо

Однако вы больше не сможете закрыть средство выбора даты каким-либо образом, поэтому убедитесь, что вы предотвращаете значение по умолчанию только тогда, когда вы хотите, чтобы средство выбора даты оставалось открытым.

e.g

close: function(e) {
    if(keepOpen === true){
        e.preventDefault();
    }
}
person gitsitgo    schedule 24.06.2014

Попробуйте зафиксировать событие изменения datePicker

 $("#datepicker").kendoDatePicker()
      .Events(e =>
      {
          e.Change("JSFunction");
      })


function JSFunction() {
   var datepicker = $("#datePickerId").data("kendoDatePicker");
    datepicker.open();
}
person CSharper    schedule 24.06.2014
comment
Да, я пробовал это выше, но он все еще закрывает средство выбора, когда пользователь меняет дату. - person 3nath; 24.06.2014