2017-03-09 2 views
1

db에서 100 항목을 선택하고 있지만 드롭 다운에 5 개만 표시하려는 다음 코드가 있습니다. .Take 메서드가 작동하지 않는 것 같습니다. 당신이 MultiSelectList의 오버로드를 보면DB에서 N 개의 항목을 선택하지만 ASP.NET MVC에서 k (여기서 k <N) 만 표시

HeatService heatService = new HeatService(); 
     List<HeatDropdownOption> availableHeats = heatService.GetHeats() 
               .Where(h => h.ComponentType.Equals(componentType.ToString())) 
               .OrderByDescending(h => h.Date) 
               .Take(Constants.NMostRecentHeats) 
               .Select(h => new HeatDropdownOption(h)) 
               .ToList(); 

     //HeatDropdown = new MultiSelectList(availableHeats, "ID", "Label", selectedHeats.Select(h=>h.ID).ToList()); 
     HeatDropdown = new MultiSelectList(availableHeats, "ID", "Label", selectedHeats.Take(5).Select(h => h.ID).ToList()); 

답변

1

4th overload 목록에서 항목을 선택하고 1st overload 그래서 우리는 dropdown에 채우기 전에 데이터를 필터링 할 .Take(5)를 사용할 수있는 드롭 다운 할 데이터를 설정하는 것입니다. 표시 할 경우 그래서이

HeatDropdown = new MultiSelectList(availableHeats.Take(5), "ID", "Label"); 

이는 availableHeats

+0

에서 처음 5 개 항목을 표시합니다 같은 5 dropdown에서 사용 걸릴하지만 나 데이터베이스에서 검색 한 모든 항목을 검색 할 수 없습니다. –

관련 문제