2017-03-09 1 views
1

Ich habe den folgenden Code, wo ich 100 Elemente aus der db auswählen, aber nur 5 im Dropdown angezeigt werden soll. Die .Take-Methode scheint nicht zu funktionieren.wählen Sie N Elemente aus der DB, aber nur k anzeigen (wobei k <N) in ASP.NET MVC

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()); 

Antwort

1

wenn man sich den Überlastungen von MultiSelectList aussehen 4th overload ist Elemente in der Liste auswählen und die 1st overload ist, die Daten so zu setzen, um Dropdown wir .Take(5) verwenden können, um die Daten zu filtern, bevor es in den dropdown bevölkern. Wenn Sie also nur 5 in dropdown Gebrauch nimmt angezeigt werden sollen, wie dies

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

es die ersten 5 Elemente aus den

+0

availableHeats anzuzeigen Aber das macht mich nicht den ganzen Artikel aus der Datenbank abgerufen durchsuchen. –

Verwandte Themen