0

Kendo UI バージョン 2013.1.319 で新しい Kendo Multi Select Control を使用しています。選択した項目を 1 つずつ追加しようとしていますが、苦労しています。

私のマークアップ:

 <input style="width: 100%; margin-top: 15px;" id="selectedFilters" />

私のスクリプト:

 var filterMultiSelect = $('#selectedFilters').kendoMultiSelect({
                        dataSource: data,
                        dataTextField: 'name',
                        dataValueField: 'value',
                        filter: 'contains',
                        placeholder: "No Filters Selected.",
                        delay: 0,
                        minLength: 2,
                        highlightFirst: true,
                        ignoreCase: true,
                        change: function () {
                            applyFilters();
                        }
                    }).data("kendoMultiSelect");

アイテムを追加するスクリプト:

newlySelectedFilters.forEach(function (dataItem) {
                        var filters = filterMultiSelect.value();
                        var temp = $.merge($.merge([], filters), [dataItem]);
                        temp = $.unique(temp);
                        filterMultiSelect.value(temp);
                    });

この問題を説明するjsFiddleプロジェクトを次に示します。

私は何を間違っていますか?どんな助けでも大歓迎です。

4

1 に答える 1

2

同じ問題を見つけたらOK。フォームは剣道が手伝ってくれました。彼らは次のjsFiddleを作成しました。フィドルを見てください。また、選択した値を既に選択されているものに追加する場合は、メソッド .slice() を使用します。

解決策は次のとおりです。

// Remove previous selected Filters. (This was undocumented method. I got from Kendo)
multiSelect.dataSource.filter({});

// Set the new filters
filterMultiSelect.value(newlySelectedFilters);

この方法でフィルターをリセットすると、問題が解決しました。

于 2013-04-24T16:58:24.217 に答える