2015-12-09 4 views
1

Мы используем мультиплексор kendo с обертками mvc. Все в настройке работает нормально, но выбранные элементы сортируются по полю значений данных. Я просто хочу, чтобы их сортировали по текстовому полю данных, но пока ничего не работало.Сортировка Kendo Multiselects selected Items by DataTextField

@(Html.Kendo().MultiSelectFor(m => m.SelectedPersonIds) 
     .HtmlAttributes(new { style = "width: 400px" }) 
     .DataTextField("Name") 
     .DataValueField("PersonID") 
     .Filter("contains") 
     .Height(400) 
     .DataSource(ds => 
     { 
     ds.Read(read => 
     { 
      read.Action("GetPersons", "Person", new { area = "" }); 
     }); 
     }) 
     .ItemTemplateId("detailTemplate") 
     .TagTemplateId("valueTemplate") 
) 

Это рабочая версия. Я попытался добавить

ds.Custom().Sort(s => s.Add("Name").Ascending()); 

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

Как я могу достичь, что выбранные элементы также сортируются по имени вместо ID? Спасибо заранее.

ответ

0

Я не знаю, есть решение ASP.NET, но я могу дать вам JavaScript, чтобы решить:

function onMultiselectChange(e) { 
     e.sender.tagList.find('> li').sort(function (a, b) { 
      return $(a).text() > $(b).text(); 
     }).appendTo(e.sender.tagList); 
    } 
}); 

Вы можете применить его к ASP.NET MULTISELECT нравится этот:

.Events(e => 
    { 
     e.Change("onMultiselectChange") 
    }) 
+0

Было бы неплохо иметь более сложный и эффективный способ сортировки выбранных элементов. –

+0

Имейте в виду, что это будет сортировать только список тегов, но это не изменит базовую структуру данных. Когда вы удаляете тег из мультиселекта, вы можете удалить другой элемент из фактического мультиселекта на основе исходного индекса и текущего индекса после сортировки списка тегов. Таким образом, в списке тегов вы видите не то же самое, что базовая структура данных, которая отправляется обратно на сервер при использовании в форме. – Progman

Смежные вопросы