1

serverFiltering を true に設定した剣道マルチセレクトがあります。

$("#ddlAnalysisTeamMember").kendoMultiSelect(
        {
            autoBind: false,
            minLength: 3,
            //placeholder: 'User Name',
            dataTextField: 'Text',
            dataValueField: 'ID',
            filter: 'contains',
            delay: 200,
            dataSource: {
                serverFiltering: true,
                transport: {
                    read: {
                        url: _VirDir("GetUsernameMultiAutoComplete", "WidgetsLoad"),
                        dataType: 'json'
                    }
                }
            }
        }
    );

必要なもの

これで選択したデータをオブジェクトに保存しました。ボタンをクリックすると、この複数選択でこの値を設定したいと思います。

これは、選択したアイテムを保存した形式です。

searchItem.TeamMember = "[{"ID":572053,"Text":"Account, Test"},{"ID":830620,"Text":"07test, Test"}]"

これまでに何を試しましたか? このように複数選択に値を設定しようとします

$("#ddlAnalysisTeamMember").data("kendoMultiSelect").value($.parseJSON(searchItem.TeamMember));

しかし、値を設定していません。次に、このようにデータソースを設定してみました。

 $("#ddlAnalysisTeamMember").data("kendoMultiSelect").setDataSource($.parseJSON(searchItem.TeamMember));

これは複数選択で値を設定しますが、自動提案は機能しません。入力すると、複数選択で検索が行われません。


私が見逃しているものは他にありますか?他の形式で保存する必要がありますか? サーバーフィルタリングで複数選択に値を設定する他の方法は?

4

1 に答える 1

1

最後に、私のために働いているものを見つけました。

searchItem.TeamMember = "[{"ID":572053,"Text":"Account, Test"},{"ID":830620,"Text":"07test, Test"}]"
LoadMultiselectData($("#ddlAnalysisTeamMember").data("kendoMultiSelect"), searchItem.TeamMember);

LoadMultiselectData = function (kendoMultiSelect, data) {
    if (data != null) {
        var jsonData = $.parseJSON(data);
        if (jsonData.length > 0) {
            var dataIDs = $.map(jsonData, function (n, i) {
                return n.ID;
            });
            kendoMultiSelect.dataSource.data(jsonData);
            kendoMultiSelect.value(dataIDs);
        }
    }
    else {
        kendoMultiSelect.dataSource.data([]);
        kendoMultiSelect.value([]);
    }
}

これは私の問題を解決します。これを改善する良い方法はありますか?

于 2016-11-15T06:52:32.233 に答える