2017-03-09 65 views
1

我有以下代碼,其中我從數據庫中選擇100個項目,但希望在下拉菜單中僅顯示5個項目。 .Take方法似乎不起作用。從數據庫中選擇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

如果你看看MultiSelectList重載的4th overload是選擇列表中的項目和1st overload是設置數據到下拉,所以我們可以使用.Take(5)dropdown填充它之前的數據進行過濾。所以,如果你想只顯示dropdown 5使用採取這樣

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

它將會顯示來自availableHeats

+0

第5項但是,這並不讓我通過從數據庫中檢索到的所有物品進行搜索。 –

相關問題