2013-09-23 162 views
0
IEnumerable<DeliveryRunRecord> deliveries = _deliveryRunService.GetAll(); 
List<SelectListItem> listOfDeliveryRuns = deliveries.Select(x => new SelectListItem 
      { 
       Value = x.Id.ToString(), 
       Text = x.Name, 
       Selected = "Select".ToString() 
      }).ToList(); 

想在選擇下拉菜單之前顯示「選擇」,但點擊時不顯示,只允許用戶選擇遞送值mvc下拉列表?

+1

你將不得不做的JavaScript,你試過嗎? – DavidB

+0

不,我沒有,有什麼想法? – John

+0

冒着聽起來無益的風險,你可以搜索谷歌,基本上你會選擇選擇的功能,這將刪除此選項。 – DavidB

回答

0

我認爲你需要像這樣的默認選擇另一個項目:

(此方法需要System.Linq的命名空間包含)

SelectListItem defaultItem = new SelectListItem 
{ 
    Selected = true, 
    Text = "Select", 
    Value = "NONE" 
}; 
List<SelectListItem> listOfDeliveryRuns = deliveries 
    .Select(x => new SelectListItem 
    { 
     Value = x.Id.ToString(), 
     Text = x.Name, 
     Selected = false 
    }) 
    .ToList() 
    .Insert(0, defaultItem); 
0

你也許可以做你問什麼你.cshtml以及。

@Html.DropDownList("DeliveryId", new SelectList(ViewBag.deliveries as System.Collections.IEnumerable, "Key", "Value"), "--Select--") 

以上顯示的下拉列表中會顯示「--Select--」作爲默認選擇的項目。我剛剛複製了一個樣本,它使用了一個帶有您的項目值的字典,並通過ViewBag作爲參數傳入。

0

Selected Property SelectListItem是布爾類型,所以你不能指定字符串它應該是false或true。

但是你想要達到的目的可以簡單地在視圖上完成。 @ Html.DropDownList(「dropdown1」,new SelectList(ViewBag.deliveries,「Value」,「Text」,),「please select」,new {onchange =「form.submit();」})

注意DropDownList方法的第四個參數,它是

我希望這會有所幫助。