2013-05-27 6 views
4

Я работаю с MVC4.MVC4: Как отсортировать этот список/выпадающий список

У меня есть этот следующий DROPDOWNLIST/SelectList:

@Html.DropDownList("EmployerID", String.Empty) 

ViewBag.EmployerID = new SelectList(db.Employers, "EmployerID", "Name", contact.EmployerID); 

, и я хочу, чтобы это DropDownList/SelectList быть отсортированы по "Имя". Что мне делать?

Большое спасибо! :)

ответ

7

Добавить OrderBy в свой db.Employers

@Html.DropDownList("EmployerID", String.Empty) 

ViewBag.EmployerID = new SelectList(db.Employers.OrderBy(x => x.Name), 
    "EmployerID", "Name", contact.EmployerID); 
+1

Спасибо за ваш ответ. Однако это не работает. Избранный список по-прежнему сортируется по идентификатору EmployerID. – user2423801

+0

Старый поток, но если это не работает для вас, возможно, вы обновили метод POST вашего контроллера, а не метод GET? –

3

Я думал, что я разделю это решение, которое я придумал, в случае, если другие имеют один и тот же вопрос, который я имел. Я работаю с дженериками, и поэтому я не могу заказать свой источник, прежде чем создавать SelectList. Однако вы можете заказать созданный SelectList. Я все еще хотел, чтобы мой метод возвращал SelectList, поэтому я вызываю SelectList() во второй раз, используя упорядоченный SelectList в качестве источника. :)

var orderedSelectList = new SelectList(source, "YourValueFieldName", "YourTextFieldName", selectedCode).OrderBy(i => i.Text); 
return new SelectList(orderedSelectList, "Value", "Text", selectedCode); 
Смежные вопросы