jQuery редактор всплывающих окон сетки кендо не передает выпадающие значения в контроллер net MVC? - PullRequest
0 голосов
/ 10 марта 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: 1, Name: "Active" }, 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"
                }
            }
        });
}

Может кто-нибудь здесь нашел ошибку, пожалуйста?

Ответы [ 2 ]

2 голосов
/ 11 марта 2020

Наконец я нашел решение. Я только что изменил запрос на обновление со свойством типа, и теперь он работает хорошо.

                update: {
                    type: 'post', // just added this and works well
                    url: "/controller/UpdateEmployee",
                    dataType: "json"
                },
1 голос
/ 10 марта 2020

Я думаю, что ваша проблема с привязкой, я имею в виду, что это не просто добавление атрибута данных bind с именем поля, иногда привязка моделей к виджетам требует некоторого уровня сложности. Поскольку я не могу воспроизвести весь ваш фрагмент, я бы предложил вам использовать options.model для установки значения input, поэтому виджет может инициализироваться с правильным значением:

function activeInactiveDropDownEditor(container, options) {    
    $('<input required name="' + options.field + '" value="' + options.model.ID + '" />')

Если это не так t работает, установите параметр value init или что-то в этом роде.

...