Kendo ui KendoMultiSelect with DataSource随请求发送所有项目

Kendo ui KendoMultiSelect with DataSource随请求发送所有项目,kendo-ui,Kendo Ui,我已经试着实现一个剑道UI多选控件和完整的读/写功能三个星期了(作为我自己在家里的评估)。我发现这非常具有挑战性,因为在MultiSelect中使用KendoUI数据源的示例很少 我有90%的路要走。我似乎无法破解更新。当我添加两个项目,然后单击submit按钮(调用数据源的sync方法)时,MultiSelect中的每个项目都被转发到服务器,请求为JSON。即,读取返回的每个项目,无论是否在MultiSelect中选择 以下是一些代码片段: $(function () { var ds =

我已经试着实现一个剑道UI多选控件和完整的读/写功能三个星期了(作为我自己在家里的评估)。我发现这非常具有挑战性,因为在MultiSelect中使用KendoUI数据源的示例很少

我有90%的路要走。我似乎无法破解更新。当我添加两个项目,然后单击submit按钮(调用数据源的sync方法)时,MultiSelect中的每个项目都被转发到服务器,请求为JSON。即,读取返回的每个项目,无论是否在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();
});
}))

有没有办法让数据源只提交用户在同步时选择的项目?或者它不是这样工作的


谢谢

在修改multi-select之后或单击按钮时,您希望何时向服务器发送更新/删除/创建请求?@OnaBai我希望在单击按钮时向服务器发送CRUD请求。因此,我应该理解您最初有
op1
op2
,当您单击按钮时,您有
op1
op3
,您将发送
create
(对于
op3
)和
delete
(对于
op2
)。对吗?@OnaBai不太对。当页面加载时,它会立即通过数据源进行读取。只有一个选项可见-“杆”。当用户单击“选择”时,会出现一个下拉列表,其中有3项可供选择汤姆、迪克和哈里。用户选择“Harry”。因此,当下拉列表折叠时,只有“罗德”和“哈利”可见。然后,单击提交按钮。所有4个“Rod”、“Tom”、“Dick”和“Harry”都提交给服务器。即使用户只选择了“Rod”和“Harry”。小部件似乎无法区分所选选项和可用选项。不确定。MultiSelect中的数据源用于包含有效值列表,而不是选定值列表。您应该将其视为一个纯HTML选择,在HTML选择中有多个选项,但当您想将选择的选项发送到服务器时,您需要定义一个表单并单击submit。这与此类似:您可以获得有效值,但如果您只想返回拾取的值,则必须编写一个
update
函数来获取值并发送它。您是否需要有关此可能实现的帮助?