2016-11-14 63 views
0

我有一個kendo多選,serverFiltering設置爲true。在服務器過濾kendo多選中預選值

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

這解決了我的問題。有沒有更好的方法來改善這一點?