将数组中的多个选定值添加到 Kendo Multi Select

Adding multiple selected values from an array to a Kendo Multi Select

背景:

我从数据库获取值,需要在 kendo 多 select 中预先 selected。我可以用一个词来做到这一点,但是当数据库中的 return 值是多个词时,我 运行 会遇到问题。

问题:

我无法在我的 kendo 多 select 中填充预先 select 的值。在最好的情况下,当我只得到一个 returned 词时,我能够 运行 这两行 var value = multiSelect.value(); multiSelect.value(["test"]); 并且 multi select 将填充测试 select离子。但是,当我从数组中获取多个值时,它的工作方式不同。

代码:

var keyWordPool = [{Words: "Test"},{Words: "Test2"}, {Words: "Test3"}, 
                   {Words: "Test4"},{Words: "Test5"}];

var returnedWords = ["Test","Test4", "Test5"]; **<< This does not work**
var returnedWords = ["Test"]; **<< This does work** 

CreateandPopulateMultiSelect(keyWordPool, returnedWords)

function CreateandPopulateMultiSelect(dataSource, wordsToPopulate)
{
   var multiSelect = $(".PanelMultiSelect").kendoMultiSelect({
        dataSource: dataSource,
        filter: "contains",
        dataTextField: "Words",
        dataValueField: "Words",
        select: function (e) {
            var item = e.item;
            var text = item.text();
            var stop = 0;
        }
    }).data("kendoMultiSelect");

   var value = multiSelect.value();

   multiSelect.value([wordsToPopulate]);
}

Objective:

我无法控制从数据库返回的单词数量,因此我需要能够在任何给定时间添加多个单词,以及一个单词。当有人打开面板栏时,我需要 wordsToPopulate 已经 selected。

好吧,我无法准确告诉您 kendo 内部发生了什么,但是当您将 wordsToPopulate 变量传递给 CreateandPopulateMultiSelect() 时,它已经是一个数组。如果你改变

multiSelect.value([wordsToPopulate]);

multiSelect.value(wordsToPopulate);

应该可以。

http://dojo.telerik.com/@Stephen/aMEma