Добавление нескольких выбранных значений из массива в Kendo Multi Select

Предыстория:

Я получаю значения из базы данных, которые необходимо будет предварительно выбрать в множественном выборе кендо. Я могу сделать это одним словом, однако, когда возвращаемое значение из БД состоит из нескольких слов, у меня возникают проблемы.

Проблема:

Я не могу заполнить предварительно выбранные значения в моем множественном выборе кендо. В лучших случаях, когда я получаю только одно возвращенное слово, я могу запустить эти две строки var value = multiSelect.value(); multiSelect.value(["test"]);, и множественный выбор будет заполнен тестовым выбором. Однако, когда я делаю несколько значений из массива, это не работает одинаково.

Код:

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]);
}

Цель:

Я не могу контролировать количество слов, которые возвращаются из БД, поэтому мне нужно будет иметь возможность добавлять несколько слов в любой момент времени, а также одно слово. Мне нужно, чтобы wordsToPopulate уже был выбран, когда человек открывает панель панели.


person EasyE    schedule 24.10.2016    source источник


Ответы (1)


Ну, я не могу точно сказать вам, что происходит внутри кендо, но ваша переменная wordsToPopulate уже является массивом, когда вы передаете ее в CreateandPopulateMultiSelect(). Если вы измените

multiSelect.value([wordsToPopulate]);

to

multiSelect.value(wordsToPopulate);

он должен работать.

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

person The Dread Pirate Stephen    schedule 24.10.2016
comment
Ага, не так давно узнал об этом - person EasyE; 24.10.2016