jquery Редактор выпадающих таблиц кендо не передает значения контроллеру. net - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь обновить 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}, которое было не ожидаемые значения. Он отправляет другие свойства правильно.

...