2012-11-05 2 views
0

ASP.net MVC 프로젝트의 모든 dropdownLists를 자동으로 정렬 할 수 있습니까?ASP.net에서 모든 드롭 다운 목록을 이름순으로 정렬하는 방법 MVC

저는 하나씩 이동하여 명시 적으로 분류하고 싶지 않습니다. 프로젝트의 모든 드롭 다운 목록에서이 작업을 자동으로 수행 할 수 있습니까?

+1

짧은 대답 : 아니요 긴 대답 : 어쩌면,하지만 당신은 DropDownList HTML 도우미에 대한 확장 코드를 작성해야 할 것입니다. – Maess

답변

1

원하는 방식으로 확장 메서드가있는 HtmlHelperExtensions 클래스를 만듭니다. 이런 식으로 뭔가 :

당신이 도우미 스틱 무엇이든 네임 스페이스
public static class HtmlHelperExtensions 
{ 
    public static MvcHtmlString SortedDropDownList(this HtmlHelper htmlHelper, string name, IEnumerable<SelectListItem> selectList) 
    { 
     return htmlHelper.DropDownList(name, selectList.OrderBy(x => x.Text)); 
    } 
} 

, 그것은보기에 당신이 그것을 사용할 수 있도록 \Views 폴더에있는 Web.config의에서 configuration\system.web.webPages.razor\pages\namespaces에 추가됩니다 확인하십시오.

0

friism가 sugested과 같이 HtmlHelperExtension 클래스를 만들 수 있습니다, 또는 당신이이 같은 selectList의에 확장 메서드를 만들 수 있습니다

public static class SortedList 
{ 
     public static void SortList(this SelectList selectList, SortDirection direction) 
     { 
      //sort content of selectList 
     } 
} 

을 다음과 같이 사용 :

var sel = new SelectList(new List<string> {"john", "mary", "peter"}); 
sel.SortList(SortDirection.Ascending); 

어느 쪽이든, 당신이 이 목록을 정렬하려는 모든 코드 행을 변경하려고합니다.

관련 문제