2014-06-09 12 views
5

Uwielbiam nowy Html.EnumDropdownListFor w MVC 5.1, i widzę, że mogę określić kolejność wartości w atrybucie reklamowej tak:Html.EnumDropdownListFor mogę zamówić alfabetycznie?

public enum AssignableDataFieldEnum 
    { 
     [Display(Name = "Code Value", Order=1)] 
     CodeValue = 1, 
     [Display(Name = "Final Digit", Order=2)] 
     FinalDigit = 2, 
     [Display(Name = "Group Number", Order=3)] 
     GroupNumber = 3, 
     [Display(Name = "Sequence Number", Order=4)] 
     SequenceNumber = 4 
} 

To rozwiązanie wydaje się krótkowzroczna z lokalizacji. Czy istnieje sposób, aby automatycznie dla mnie zamówić alfabetycznie MVC alfabetycznie?

+0

"Porządek" nie wydaje mi się, żeby to dla mnie zająć. – bradlis7

+0

Utwórz metodę rozszerzenia, która przekształca element Enum w listę SelectList. Polecam również nie używać Enums i zamiast tego używać klas, nawet jeśli są to KeyValuePair lub Tuple. –

+1

Zaczynając od 1, nie masz boga? – Sinjai

Odpowiedz

1

Czy istnieje sposób, aby automatycznie mieć dla mnie kolejność MVC w alfabecie DDL?

Nie wiem jak. Wydaje się, że żadne z przeciążeń nie przyjmuje żadnych parametrów sortowania, takich jak ASC lub DESC. Wygląda na to, że musiałbyś zaimplementować własną wersję EnumDropDownListFor, potencjalnie używając samej EnumDropDownListFor lub użyć rozwiązania javascript do sortowania wybranego elementu po fakcie.

5

Wymyśliłem rozwiązanie, które pobiera wartości wyliczeniowe, sortuje je, a następnie wywołuje numer HtmlHelper.DropDownListFor().

Powiązane problemy