背景
我从数据库中获取需要在kendo多选中预先选择的值。我能用一个单词做到这一点,但是当DB的返回值是多个单词时,我遇到了问题。
问题:
我无法在我的kendo多选中填充预先选择的值。在最好的情况下,当我只得到一个返回的单词时,我能够运行这两行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]);
}
目的:
我无法控制从DB返回的单词数量,因此我需要能够在任何给定时间添加多个单词,以及一个单词。当一个人打开面板栏时,我需要选择 wordsToPopulate 。
答案 0 :(得分:3)
好吧,我无法确切地告诉你kendo内部发生了什么,但是当你把它传递给CreateandPopulateMultiSelect()时,你的wordsToPopulate变量已经是一个数组了。如果你改变了
multiSelect.value([wordsToPopulate]);
到
multiSelect.value(wordsToPopulate);
它应该有用。