Kendo ui ';选项';剑道数据源中的参数

Kendo ui ';选项';剑道数据源中的参数,kendo-ui,datasource,Kendo Ui,Datasource,现在我正在学习使用kendoui开发一个web应用程序,当我尝试使用自定义弹出窗口kendoWindow而不是kendo内置编辑窗口来提取网格数据时,我不知道如何将请求发送到远程服务,因此我尝试在中的官方api文档中找到答案,但出现了一个新问题,显示如下代码: <script> var dataSource = new kendo.data.DataSource({ transport: { read : function (opti

现在我正在学习使用kendoui开发一个web应用程序,当我尝试使用自定义弹出窗口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>

var dataSource=new kendo.data.dataSource({
运输:{
阅读:功能(选项){
/*为简洁起见省略了实现*/
},
更新:功能(选项){
//向发出JSONP请求http://demos.kendoui.com/service/products/update
$.ajax({
url:“http://demos.kendoui.com/service/products/update",
数据类型:跨域请求需要“jsonp”//“jsonp”;相同域请求需要使用“json”
//将更新的数据项作为JSON编码的“models”服务参数发送
数据:{
模型:kendo.stringify(options.data.models)
},
成功:功能(结果){
//通知数据源请求已成功
选项。成功(结果);
},
错误:函数(结果){
//通知数据源请求失败
选项。错误(结果);
}
});
}
},
批次:对,
模式:{
模型:{id:“ProductID”}
}
});
dataSource.fetch(函数(){
var乘积=数据源。在(0);
产品组(“单价”,20);
dataSource.sync();向http://demos.kendoui.com/service/products/update
});
这是一个示例,演示了如何将update指定为向远程服务发出HTTP请求的函数

我的问题是传递给read和update函数的参数“options”是什么。
我发现的唯一线索是transport.parametermap函数的参数,但我不确定它们之间是否存在某种关系,因此希望有人能为我解释一下选项参数是您已经发现的。 KendoUI让我们为它的datasource类的数据访问方法指定一个函数,而不是一些配置

如果你指定了一个函数,kendoUI怎么知道你什么时候加载完数据?不可能。 所以有一个options变量被传递给你的函数(实际上,它可以有每个名字,比如dfhajkfhd),你可以调用它让kendoUI知道你的进度。 为此,它有成功错误方法,您可以调用这些方法

你的评论,你从剑道文件中抄来的,正是这样说的


还是你提出了一些不同的问题?

真的很感激那些回答了这个问题的人,并试着

我从我在问题中链接的剑道文档的底部找到了答案

  • 创建新的“数据源”对象并定义读取 并更新其中的传输
  • 当数据源就绪时,使用 dataSource的“get”方法,用于获取我需要自定义的数据项 凭身份证
  • udpate数据使用“设置”方法,并通过“同步”方法提交
  • 最后一步是将数据同步到数据库 下面是我使用的代码

    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 
    });
    

    非常感谢你的回答。是的,我已经从我链接的文档中找到了答案。