2016-11-14 9 views
0

私は、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)); 

これはマルチセレクションの値を設定しますが、自動提案は機能しません。入力すると、マルチセレクトで検索が行われません。


他に何かお見逃しですか?私はそれを他の形式で保存しなければならないのですか?サーバーのフィルタリングでマルチセレクションに価値を設定する他の方法は何ですか?

答えて

0

最後に私のために働いているものが見つかりました。

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([]); 
    } 
} 

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

関連する問題