2016-09-23 3 views
0

J'ai un Kendo MultiSelect qui utilise ajax pour saisir les valeurs potentielles du menu de sélection d'une table de base de données qui n'est pas directement liée au modèle..Net Kendo HtmlHelper Ajax MultiSelect Valeurs initiales

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); 
    }) 
) 

Le code ci-dessus avec le rendu Sélectionnez Menu et afficher les données au contrôleur où je peux l'analyser et l'envoyer à la base de données. Tout cela fonctionne lors de la création d'un nouveau tag. Le problème se pose lorsqu'il existe déjà des balises sur une entité. Comment puis-je faire Kendo obtenir les étiquettes existantes et les marquer comme sélectionnés dans le menu Multiselect.

Répondre

1

Créez une liste des éléments sélectionnés dans l'action du contrôleur qui appelle cette vue et celle-ci vers votre modèle (ViewModel).

Puis ajouter une clause .Value() au widget:

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