2016-09-23 1 views
0

У меня есть Kendo MultiSelect, который использует ajax для захвата значений потенциала меню выбора из таблицы базы данных, которая напрямую не связана с моделью..Net Kendo HtmlHelper Ajax MultiSelect Начальные значения

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

Приведенный выше код с визуализации Выберите Меню и отправить данные обратно в контроллер, где я могу разобрать его и отправить его в базу данных. Все это работает при создании нового тега. Проблема возникает, когда уже существуют теги для объекта. Как заставить Kendo получить существующие теги и пометить их как выбранные в меню Multiselect.

ответ

1

Создайте список выбранных элементов в действии контроллера, вызывающего это представление, и его в вашу модель (ViewModel).

Затем добавить пункт .Value() виджету:

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