Я пытаюсь обновить jquery сетку кендо, используя всплывающий редактор. и все работают хорошо, не показывая ошибок. Но только свойство, относящееся к раскрывающемуся списку, не передает корректные значения контроллеру при обновлении.
var element = $("#grid").kendoGrid({
dataSource: {
type: "json",
transport: {
read: '/controller/GetEmployees',
update: {
url: "/controller/UpdateEmployee",
dataType: "json"
},
},
pageSize: 10,
serverPaging: true,
serverSorting: false,
schema: {
model: {
id: "EmployeeID",
fields: {
EmployeeID: { type: "number", editable: false },
EmployeeName: { type: "string", editable: true },
EmployeeStatus: { defaultValue: { ID: 0, Name: "" }, editable: true }
}
}
}
},
height: 500,
sortable: false,
pageable: false,
editable: "popup",
toolbar: ["create"],
columns: [
{
field: "EmployeeName",
title: "Employee Name",
width: "110px"
},
{
field: "EmployeeStatus",
title: "Status",
width: "110px",
editor: activeInactiveDropDownEditor,
template: "#=EmployeeStatus.Name#"
},
{
command: "edit",
width: "80px"
}
]
});
});
function activeInactiveDropDownEditor(container, options) {
$('<input required name="' + options.field + '" data-bind="ID"/>')
.appendTo(container)
.kendoDropDownList({
//autoBind: true,
dataTextField: "Name",
dataValueField: "ID",
dataSource: {
type: "json",
transport: {
read: "/controller/GetStatusList" // this returns - { ID = 1, Name = "Active" },{ ID = 2, Name = "Inactive" }
}
}
});
}
В всплывающем редакторе оно правильно отображает статус сотрудника с помощью приведенного выше раскрывающегося списка. Но когда он попадает в контроллер, он не содержит ожидаемых значений.
Контроллер -
public JsonResult UpdateEmployee(EmployeeViewModel employee)
{
return Json(true, JsonRequestBehavior.AllowGet);
}
В приведенном выше параметре employee содержится свойство EmployeeStatus с {ID: 0, Name: null}, которое было не ожидаемые значения. Он отправляет другие свойства правильно.