Кендо сетки начальное значение выпадающего не сохраняется - PullRequest
0 голосов
/ 08 сентября 2018

Я использую несколько таких редакторов

function checkListEditor(container, options) {
    $('<input required data-text-field="Name" data-value-field="Id" data-bind="value:CheckListId"/>')
        .appendTo(container)
        .kendoDropDownList({
            autoBind: false,
            dataTextField: "Name",
            dataValueField: "Id",
            dataSource: {
                transport: {
                    read: '@Url.Action("GetCheckLists", "CheckList")',
                    dataType: "json"
                }
            },
            change: function (e) {
                var dataItem = this.dataItem(e.item);
                options.model.set("CheckListName", dataItem.Name);
            }
        });
}

Я беру источник данных из БД. Обновление работает без проблем, но создавать нет. Предварительно выбранное значение прослушивается. Когда я оставляю это, это становится пустым. Как это исправить? Проблема существует во всех редакторах. Когда я выбираю другое значение из выпадающего списка, тогда все работает как ожидалось

<script>
                        $(document).ready(function () {
                            $("#checklist-grid").kendoGrid({
                                dataSource: {
                                    type: "json",
                                    transport: {
                                        read: {
                                            url: "@Html.Raw(Url.Action("List", "CheckListStep"))",
                                            type: "POST",
                                            dataType: "json",
                                            data: additionalData
                                        },
                                        create: {
                                            url: "@Html.Raw(Url.Action("Create", "CheckListStep"))",
                                            type:"POST",
                                            dataType: "json",
                                            data: additionalData
                                        },
                                        update: {
                                            url: "@Html.Raw(Url.Action("Edit", "CheckListStep"))",
                                            type:"POST",
                                            dataType: "json",
                                            data: additionalData
                                        },
                                        parameterMap: function (options, operation) {
                                            if (operation !== "read" && options.models) {
                                                return { models: kendo.stringify(options.models) };
                                            } else {
                                                addAntiForgeryToken(options);
                                                return options;
                                            }
                                        }
                                    },
                                    schema: {
                                        data: "Data",
                                        total: "Total",
                                        errors: "Errors",
                                        model: {
                                            id: "Id",
                                            fields: {
                                                Id:{editable:false},
                                                AssignedToId:{editable:true,type:"number"},
                                                AssignedToName:{type:"string"},
                                                DefaultOwnerId:{editable:true,type:"number"},
                                                DefaultOwnerName:{type:"string"},
                                                CheckListId:{editable:true,type:"number",validation:{required:true}},
                                                CheckListName:{type:"string"},
                                            }
                                        }
                                    },
                                    requestEnd: function (e) {
                                        if (e.type == "read") {
                                            var response = e.response;
                                            if (response) {
                                                //store extra data
                                                reportAggregates = e.response["ExtraData"];
                                            }
                                        }
                                        if (e.type == "update" || e.type == "create") {
                                            this.read();
                                        }
                                    },
                                },
                                pageable: {
                                    refresh: true,
                                    pageSizes: [@(gridPageSizes)]
                                },
                                editable: "incell",
                                toolbar: ["create","save","cancel"],
                                scrollable: false,
                                batch:true,
                                dataBound: onDataBound,

                                columns: [
                                    {
                                        field: "CheckListId",
                                        title: "Check List",
                                        width: 100,
                                        editor: checkListEditor,
                                        template: "#:CheckListName#"
                                    },
                                    {
                                        field: "DefaultOwnerId",
                                        title: "Default owner",
                                        width: 100,
                                        editor: ownerEditor,
                                        template: "#:DefaultOwnerName#"
                                    },
                                    {
                                        field: "AssignedToId",
                                        title: "Assigned To",
                                        width: 100,
                                        editor: assignedEditor,
                                        template: "#:AssignedToName#"
                                    },
                                    { command: ["destroy"], title: "&nbsp;", width: "250px" }
                                ]

                            });
                        });
                    </script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...