私が持っているToSelectList
方法:
public static IList<SelectListItem> ToSelectList<T>(this IEnumerable<T> itemsToMap, Func<T, string> textProperty, Func<T, string> valueProperty, Predicate<T> isSelected)
{
var result = new List<SelectListItem>();
foreach (var item in itemsToMap)
{
result.Add(new SelectListItem
{
Value = valueProperty(item),
Text = textProperty(item),
Selected = isSelected(item)
});
}
return result;
}
ここでこのメソッドを呼び出すと:
public static List<SelectListItem> lesgeverList(int selectedID) {
NASDataContext _db = new NASDataContext();
var lesg = (from l in _db.Lesgevers
where l.LG_Naam != "leeg"
orderby l.LG_Naam
select l).ToSelectList(m => m.LG_Naam + " " + m.LG_Vnaam, m => m.LG_ID.ToString(), m => m.LG_ID == selectedID);
return lesg.ToList();
}
List<SelectListItem>
私が得るには、selectedID
選択した通りがあります。
今、複数のアイテムを選択したい場合は、Lesgevers のリストを指定します
public static List<SelectListItem> lesgeverList(List<Lesgever> lg) {
NASDataContext _db = new NASDataContext();
var test = (from l in _db.Lesgevers
where l.LG_Naam != "leeg" && lg.Contains(l)
orderby l.LG_Naam, l.LG_Vnaam
select l).ToList();
var lesg = (from l in _db.Lesgevers
where l.LG_Naam != "leeg"
orderby l.LG_Naam, l.LG_Vnaam
select l).ToSelectList(m => m.LG_Naam + " " + m.LG_Vnaam, m => m.LG_ID.ToString(), m => lg.Contains(m));
return lesg.ToList();
}
これは、lg List にあるものをvar test
返します。my には、selectlistitem がまったく選択されていません。Lesgevers
var lesg
私の間違いはどこですか?:)どうすればthixを修正できますか?