大约三周以来,我一直在尝试实现具有完整读/写功能的 Kendo UI MultiSelect 控件(作为我自己在家中的评估)。鉴于使用 Kendo UI DataSource 和 MultiSelect 的示例很少,我发现这非常具有挑战性。
我已经完成了 90% 的路程。我似乎无法破解更新。当我添加几个项目,然后单击提交按钮(调用 DataSource 的同步方法)时,MultiSelect 中的每个项目都被转发到服务器,请求为 JSON。也就是说,Read 返回的每一项,无论是否在 MultiSelect 中被选中。
以下是一些代码片段:
$(function () {
var ds = new kendo.data.DataSource({
type: "json",
serverFiltering: true,
transport: {
read: {
url: '/api/Members/Members',
dataType: "json",
contentType: 'application/json; charset=utf-8',
type: "GET"
},
update: {
url: "/Home/Update",
dataType: "json",
type: "POST",
contentType: 'application/json; charset=utf-8',
},
create: {
url: "/api/Members/Update",
dataType: "json",
contentType: 'application/json; charset=utf-8',
type: "POST"
},
parameterMap: function(data, type) {
return kendo.stringify(data);
}
},
batch: true,
schema: {
parse: function(response) {
return JSON.parse(response);
},
model: {
Id: 'Id'
}
}
});
var teeTimes =
$('#TeeOffTimes').kendoMultiSelect({
placeholder: "Select members...",
dataTextField: "FirstName",
dataValueField: "Id",
autoBind: true,
dataSource: ds,
itemTemplate: $("#members-template").html(),
value: ['1']
}).data("kendoMultiSelect");
$('#submit').on('click', function () {
var val = teeTimes.value();
ds.sync();
});
});
有没有办法让 DataSource 只提交用户在同步时选择的那些项目?或者它不是那样工作的?
谢谢