1

背景:

我从数据库中获取需要在剑道多选中预先选择的值。我可以用一个词来做到这一点,但是当数据库的返回值是多个词时,我遇到了问题。

问题:

我无法在我的剑道多选中填充预选的值。在最好的情况下,当我只得到一个返回的单词时,我可以运行这两行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 。

4

1 回答 1

4

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

multiSelect.value([wordsToPopulate]);

multiSelect.value(wordsToPopulate);

它应该工作。

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

于 2016-10-24T18:56:15.227 回答