2010-11-10 35 views
-1

我需要转换ToSelectList项目(字符串或整数)MVC的SelectList SelectValues

列表的一个推广,我发现这一点:

 public static SelectList ToSelectList<T>(this IEnumerable<T> collection, 
          string dataValueField, string dataTextField, string selectedValue) 
    { 
     return new SelectList(collection, dataValueField, dataTextField, selectedValue); 
    } 

但这并不处理多个选择的值。 我试过这个:

 public static SelectList ToSelectList<T>(this IEnumerable<T> collection, 
        string dataValueField, string dataTextField, IEnumerable<T> selectedValues) 
    { 
     var list = new SelectList(collection, dataValueField, dataTextField, selectedValues); 
     return list; 
    } 

但它不起作用。 请帮忙!

+0

12个问题;尽管得到了许多有用的,经常精心设计的答案,但仍然没有一个被接受的答案或投票。 – 2010-11-10 20:17:16

回答

0

我没有测试过,但试试这个:现在

public static SelectList ToSelectList<T>(
    this IEnumerable<T>  collection, 
     string    dataValueField, 
     string    dataTextField,   
     IEnumerable<string> selectedValues) 
{ 
    var list = new SelectList(collection, dataValueField, dataTextField); 
    foreach (var item in list.Items) 
    { 
     if (selectedValues.Contains(item.Value) 
     { 
      item.Selected = true; 
     } 
    } 
    return list; 
}