gpt4 book ai didi

jquery - Kendo UI 网格更新

转载 作者:行者123 更新时间:2023-11-30 23:59:19 25 4
gpt4 key购买 nike

我正在使用带有服务的 Kendo UI 网格,该服务需要将行更新为 JSON 字符串而不是 URL 编码表单的 POST 请求。

我的网格数据源配置如下所示:

dataSource: new kendo.data.DataSource({
transport: {
read: "/Service.svc/instructors",
update: {
url: "/Service.svc/instructors",
type: "POST",
contentType: "application/json; charset=utf-8",
data: function (data) {
return kendo.stringify(data);
}
}
},
//...
});

但是请求正文最终看起来像这样:

0=%7B&1=%22&2=I&3=d&4=%22&5=:&6=%20&7=1&8=,&9=%20&10=%22&11=F&12=o&13=o&14=%22&15=:&16=%20&17=%22&18=f&19=o&20=o&21=%22&22=,&23=%20&24=%22&25=B&26=a&27=r&28=%22&29=:&30=%20&31=%22&32=b&33=a&34=r&35=%22&36=%7D&Id=1&Foo=foo&Bar=bar

一个编码的 json 对象 ({"Id": 1, "Foo": "foo", "Bar": "bar"}) (顺便说一句,它是什么编码?)加上表单数据。

直接使用 jQuery 就可以了:

$.ajax({
type: "POST",
url: "/Service.svc/instructors",
data: kendo.stringify({Id: 1, Foo: "foo", Bar: "bar"}),
contentType:"application/json; charset=utf-8",
dataType: "json",
success: function(data) { console.log(data);}
});

根据documentation ,我应该能够将 update 设置为函数并调用它,但显然这个 hasn't work since 2012 .

如何让 Kendo 发布正确的数据?

最佳答案

它不直观或没有详细记录,但您想在 parameterMap 函数中调用 JSON.stringify():

var productsDataSource = new kendo.data.DataSource({
transport: {
read: {
url: "/Products"
},
update: {
type: "POST",
url: "/Products/Edit",
dataType: "json",
contentType: "application/json"
},
parameterMap: function(data, operation) {
if (operation === "update" || operation === "create") {
return JSON.stringify({product: data});
}
return data;
}
},
schema: {
model: {
id: "ProductID",
fields: {
Name: { type: "string" },
ListPrice: { type: "number" },
SellStartDate: { type: "date" }
}
}
}
});

关于jquery - Kendo UI 网格更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24814053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com