Параметр "options" в источнике данных kendo

теперь я учусь разрабатывать веб-приложение с помощью kendoui, когда я пытаюсь udpate данные сетки с cusomized popup kendoWindow вместо встроенного окна редактирования kendo, я не знал, как отправить запрос на удаленную службу, поэтому я пытаюсь найти ответ в официальных документах api в на этой странице, но возникла новая проблема, покажите как следующий код:

<script>
    var dataSource = new kendo.data.DataSource({
        transport: {
            read  : function (options) {
                /* implementation omitted for brevity */
            },
            update: function (options) {
                // make JSONP request to http://demos.kendoui.com/service/products/update

                $.ajax({
                    url     : "http://demos.kendoui.com/service/products/update",
                    dataType: "jsonp", // "jsonp" is required for cross-domain requests; use "json" for same-domain requests
                    // send the updated data items as the "models" service parameter encoded in JSON
                    data    : {
                        models: kendo.stringify(options.data.models)
                    },
                    success : function (result) {
                        // notify the data source that the request succeeded

                        options.success(result);
                    },
                    error   : function (result) {
                        // notify the data source that the request failed
                        options.error(result);
                    }
                });
            }
        },
        batch    : true,
        schema   : {
            model: { id: "ProductID" }
        }
    });

    dataSource.fetch(function () {
        var product = dataSource.at(0);
        product.set("UnitPrice", 20);
        dataSource.sync(); makes request to http://demos.kendoui.com/service/products/update
    });
</script>

Это пример для иллюстрации того, как указать update в качестве функции, чтобы сделать HTTP-запрос удаленная служба

моя проблема заключается в том, что параметр "параметры" передается функции чтения и обновления. единственная подсказка, которую я нашел, это параметры транспорта.функция parametermap, но я не уверен, что между ними есть определенная связь, поэтому надеюсь, что кто-то объяснит мне

2 ответов


параметр options-это то, что вы уже обнаружили. KendoUI давайте вы укажете функцию вместо некоторой конфигурации для методов доступа к данным его класса datasource.

Если вы укажете функцию, как kendoUI когда-либо узнает, когда вы закончите загрузку данных? Не может. Таким образом, есть эта опция-переменная, которая передается вашей функции (и действительно, она может иметь каждое имя, например dfhajkfhd), которую вы можете вызвать, чтобы kendoUI знал о вашем достижения. Для этого у него есть успехов и методы, которые вы можете вызвать.

ваши комментарии, которые вы скопировали из Kendo-docs, говорят именно это.

или вы спрашивали что-то другое?


действительно цените тех, кто ответил на этот вопрос и попробуйте

Я нашел ответ из нижней части документов кендо, которые я связал в вопросе.

  1. создал новый объект "dataSource" и определяет чтение и обновить транспорт в нем
  2. когда dataSource готов, используйте метод " get " источника данных для получения элемента данных, который мне нужен для udpate по идентификатору.
  3. данные udpate используют метод " set "и отправляют методом "sync" метод

последний шаг-синхронизация данных с базой данных выполните это код, который я использовал

var updateDataSource = new kendo.data.DataSource({
    type: "odata",
    transport: {
        read: {
            url: "/api/odata/PEMEP/TaskInformations/?"
        },
        update: {
            url: "/api/odata/PEMEP/TaskInformations/?",
            type: "PUT",
            dataType: "json",
        },
    },
    schema: {
        model: {
            id: "_id"
        }
    },
    sync: function() { // close edit window when update request finished

        $("#window").data("kendoWindow").close();
    },
    error: function(e) {
        console.log(e.status);
    }
});
updateDataSource.fetch(function() {

    var task = updateDataSource.get(id); // get dataitem by id

    task.set("status", status); // set new values
    task.set("retreatReason", retreatReason);

    updateDataSource.sync(); //submit the change 
});