2016-09-23 4 views
0

Ich habe eine Kendo MultiSelect, die Ajax verwendet, um die Auswahlmenüpotentialwerte aus einer Datenbanktabelle zu holen, die nicht direkt mit dem Modell verwandt ist..Net Kendo HtmlHelper Ajax MultiSelect Anfangswerte

Multiselect:

@(Html.Kendo().MultiSelect() 
    .Name("ContactTags") 
    .DataTextField("Name") 
    .DataValueField("TagId") 
    .Placeholder("Please select a tag") 
    .AutoBind(false) 
    .DataSource(source => 
    { 
     source.Read(read => 
     { 
      read.Action("GetTags", "ContactTag"); 
     }) 
     .ServerFiltering(true); 
    }) 
) 

Der obige Code mit dem Select-Menü machen und die Daten zurück an den Controller schreiben, wo ich es analysieren kann und es an die Datenbank senden. Das funktioniert beim Erstellen eines neuen Tags. Das Problem tritt auf, wenn auf einer Entität bereits Tags vorhanden sind. Wie führe ich Kendo dazu, die vorhandenen Tags zu erhalten und sie als im Multiselect-Menü ausgewählt zu markieren?

Antwort

1

Erstellen Sie eine Liste der ausgewählten Elemente in der Controller-Aktion, die diese Ansicht aufrufen, und dieses Modell (ViewModel).

Dann eine .Value() Klausel zum Widget hinzufügen:

@(Html.Kendo().MultiSelect() 
    .Name("ContactTags") 
    .DataTextField("Name") 
    .DataValueField("TagId") 
    .Placeholder("Please select a tag") 
    .AutoBind(false) 
    .Value(Model.SelectedTags) 
    .DataSource(source => 
    { 
     source.Read(read => 
     { 
      read.Action("GetTags", "ContactTag"); 
     }) 
     .ServerFiltering(true); 
    }) 
) 
Verwandte Themen