2016-11-14 6 views
0

Ich habe eine Kendo Multiselect mit ServerFiltering auf True eingestellt.Vorwahlwert in Kendo Multiselect mit Server Filterung

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

Was ich brauche

Ich habe bereits einige Daten in das in einem Objekt ausgewählt gespeichert. Ich möchte diese Werte in diesem Multiselect einstellen, sagen wir auf Knopfdruck.

In diesem Format habe ich die ausgewählten Objekte gespeichert.

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

Was habe ich versucht, so weit? Ich versuche, den Wert auf die Mehrfachauswahl wie diese

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

einzustellen Aber nicht den Wert. Dann versuchte ich mit der Einstellung der Datenquelle wie folgt.

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

Dies legt den Wert in Multiselect, aber Auto Vorschlag funktioniert nicht. Wenn wir tippen, erfolgt keine Suche in Multi-Select.


Gibt es noch etwas, das ich vermisse? Muss ich es in einem anderen Format speichern? Welche anderen Methoden, um einen Multiselect mit Serverfilterung zu bewerten?

Antwort

0

Endlich habe ich etwas gefunden, das für mich funktioniert.

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

Das löst mein Problem. Gibt es einen besseren Weg, dies zu verbessern?

Verwandte Themen