2010-05-20 3 views
3

Html.DropDownFor()에 의해 생성 된 선택 항목의 옵션 태그에 사용자 지정 HTML 특성, 특히 클래스 또는 스타일을 추가해야 할 필요가 있습니다.MVC2의 SelectListItems에 대한 사용자 정의 HTML 속성?

나는 그걸 가지고 놀았으며, 내 인생에서 내가해야 할 일을 얻기 위해 내가해야 할 일을 알아낼 수 없다.

드롭 다운을 생성하는 색상 목록이 있다고 가정합니다. 여기서 옵션 값은 색상의 식별자이고 텍스트는 이름입니다. 여기에 내가 볼 수 있기를 원하는 항목이 있습니다. 출력 :

<select name="Color"> 
    <option value="1" style="background:#ff0000">Red</option> 
    <option value="2" style="background:#00ff00">Green</option> 
    <option value="3" style="background:#0000ff">Blue</option> 
    <!-- more here --> 
    <option value="25" style="background:#f00f00">Foo Foo</option> 
</select 

> 난 당신이 DropDownFor 도우미 내장이 할 수 있다고 생각하지 않습니다

답변

1

내 자신의 공유 편집기 템플릿을 만들었습니다. 내보기에

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.Int64>" %> 
<%var colors = ViewData["Colors"] as ColorTable; 
    var name = Html.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(String.Empty); 
    var id = Html.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldId(String.Empty); 
%> 
    <select name="<%=name %>" id="<%=id %>"> 
    <%foreach(var color in colors) {%> 
    <option value="<%=color.Id %>" style="background:<%=color.Hex%>;"<%if(color.Id == Model) { %> selected="selected"<%} %>><%:color.Name %></option> 
    <%} %> 
    </select> 

(:

기본적으로 내가 "ColorSelect.ascx"라는 /보기/공유/편집자 폴더하에하는 .ascx을 만들었을

다음 해당하는 .ascx 안에 나는 다음과 같은 추가 .aspx), 나는 이것을했다 :

나는 이것이 나가 가지고 있던 동일한 문제점으로 달리는 다른 사람을 돕는다는 것을 희망한다.

3

. 당신은 아마 당신 자신의 SelectListItem 클래스를 만들고 그것과 함께 가기 위해 도와야한다. this similar request이 도움이 될 수 있습니다.