#javascript #jquery #kendo-ui #datepicker #kendo-grid
Вопрос:
Фон:
У меня есть сетка jQuery Kendo с нижеприведенными столбцами, в которой я разрешаю пользователям выполнять встроенное редактирование в пакетном режиме.
columns: [
{ field: "MedRecRcvd", title: "Med Rec Rcvd", width: "30px", editor: medRecRcvdDropDownEditor, template: "#=MedRecRcvd.MedRecRcvdName#" },
{
field: "dateReceived", title: "Date Rcvd", format: "{0:dd MMM yyyy}", width: 30, editor: function (container, options) {
var input = $("<input />");
input.attr("name", options.field);
input.appendTo(container);
input.kendoDatePicker({
});
}
}]
Требования:
Выпадающий список MedRecRcvd имеет 3 возможных значения. Одним из требований является, когда выбранное значение для MedRecRcvd выбрано как «Да», затем установите «Дата получена» на сегодняшнюю дату.
Вот что у меня есть до сих пор: Для выпадающего списка MedRecRcvd у меня есть функция редактора, в которой я пытаюсь назначить сегодняшнюю дату, когда происходит событие изменения. Мне нужна помощь в назначении сегодняшней даты для выбора даты, если выбранное значение MedRecRcvd равно «Y». Как вы можете видеть, я пробовал разные вещи, чтобы получить экземпляр kendo datepicker и установить значение, но сейчас я в значительной степени упираюсь в стену. Любые идеи будут оценены по достоинству !
function medRecRcvdDropDownEditor(container, options) {
$('<input required name="' options.field '"/>')
.appendTo(container)
.kendoDropDownList({
autoBind: true,
dataTextField: "MedRecRcvdName",
dataValueField: "MedRecRcvdId",
change: function (e) {
var value = this.value();
if (value != null amp;amp; value == "Y") {
var grid = e.sender.element.closest(".k-grid").data("kendoGrid");
var row = e.sender.element.closest("tr");
var medRecdtPicker = e.sender.element.closest("[name='dateReceived']").data("kendoDatePicker");
medRecdtPicker.setDate(new Date());
}
},
dataSource: {
transport: {
read: function (e) {
e.success(datasource);
},
}
}
});
}
Комментарии:
1. Можете ли вы поделиться минимальным, воспроизводимым и рабочим примером?
Ответ №1:
Вы можете напрямую присвоить значение модели.
напр.
function medRecRcvdDropDownEditor(container, options) {
$('<input required name="' options.field '"/>')
.appendTo(container)
.kendoDropDownList({
autoBind: true,
dataTextField: "MedRecRcvdName",
dataValueField: "MedRecRcvdId",
change: function (e) {
var value = this.value();
if (value != null amp;amp; value == "Y") {
options.model.set('dateReceived', new Date())
}
},
dataSource: {
transport: {
read: function (e) {
e.success(datasource);
},
}
}
});
}
Комментарии:
1. это сработало как заклинание!! Почему я об этом не подумал? спасибо тебе, уууу 🙂