如何在Kendo Multi Select上设置数据值?

Rod*_*ney 9 jquery telerik kendo-ui

我正在使用Kendo Multi Select.我想将选定的值加载到多选中.如何在Java Script中设置数据值?我有以下脚本:

$('#selectedFilters').kendoMultiSelect({
                    dataSource: data,
                    dataTextField: 'name',
                    dataValueField: 'value',
                    filter: 'contains',
                    placeholder: "Add Filter",
                    delay: 0,
                    minLength: 2,
                    highlightFirst: true,
                    ignoreCase: true,
                    change: function (event) {
                        applyFilters();
                    },
                });
Run Code Online (Sandbox Code Playgroud)

Ona*_*Bai 20

您可以使用value()方法设置值.

例如,给出以下HTML:

<a href="#" id="button" class="k-button">Select</a>
<input id='selectedFilters'>
Run Code Online (Sandbox Code Playgroud)

和JavaScript:

var data = [
    { name : "name1", value : "value1" },
    { name : "name2", value : "value2" },
    { name : "name3", value : "value3" },
    { name : "name4", value : "value4" },
    { name : "name5", value : "value5" },
    { name : "name6", value : "value6" }
];
var multiselect = $('#selectedFilters').kendoMultiSelect({
    dataSource    : data,
    dataTextField : 'name',
    dataValueField: 'value',
    filter        : 'contains',
    placeholder   : "Add Filter",
    delay         : 0,
    minLength     : 2,
    highlightFirst: true,
    ignoreCase    : true,
    change        : function (event) {
        console.log("change");
    }
}).data("kendoMultiSelect");

$("#button").on("click", function () {
    console.log("multiselect", multiselect);
    multiselect.value(["value1", "value2", "value6"]);
});
Run Code Online (Sandbox Code Playgroud)

如果单击button多值input获取:name1,name2name6.

编辑如果要添加到当前选定的值,请执行以下操作:

$("#button").on("click", function () {
    var selected = multiselect.value();
    var res = $.merge($.merge([], selected), ["value1", "value2", "value6"]);
    multiselect.value(res);
});
Run Code Online (Sandbox Code Playgroud)

注意:由于某种原因,您无法重用selected数组来设置新值,因此您应该创建一个新值.

检查它在这里运行

  • @Rodney,由于某种原因你无法重用原始数组来设置新值,所以你应该做`var res = $ .merge($ .incin([],selected),["value1","value2", "value6"]);`然后`multiselect.value(res)`检查它[这里](http://jsfiddle.net/OnaBai/LQx2z/) (2认同)