1

バックグラウンド:

剣道の複数選択で事前に選択する必要があるデータベースから値を取得します。1 つの単語でこれを行うことができますが、DB からの戻り値が複数の単語である場合、問題が発生します。

問題:

剣道の複数選択で、事前に選択された値を入力できません。返された単語が 1 つだけの最良のケースでは、これらの 2 つの行を実行でき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 から返される単語の量を制御することはできないため、1 つの単語だけでなく、いつでも複数の単語を追加できる必要があります。人がパネル バーを開いたときに、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 に答える