2013-10-08 87 views
0

如何創建具有多個選定項目的SelectList ?.我想選擇列表的剃刀下拉綁定,如果它的一個選擇的項目我使用這個代碼具有多個選定項目的SelectList

 List<SchoolApp.Models.Accounts.role> roles = accRepo.GetRoles(); 
     if (selected > 0) 
     { 
      ViewBag.RolesList = new SelectList(roles, "Id", "RoleName"); 
     } 
     else 
     { 
      ViewBag.RolesList = new SelectList(roles, "Id", "RoleName", selected); 
     } 

而且在剃刀我使用的語法

<div class="editor-label"> 
     @Html.LabelFor(model => model.RoleId) 
    </div> 

    <div class="editor-field">   
     @Html.DropDownListFor(model => model.RoleId, (SelectList)ViewBag.RolesList, "Select", new { @class = "multiselect", @multiple = "multiple", @style = "width: 450px;height:300px" }) 
     @Html.ValidationMessageFor(model => model.RoleId) 
    </div> 

但我怎麼可以設置多發項目,如我試過

ViewBag.RolesList = new SelectList(roles, "Id", "RoleName",, new[] { 2, 3, 10, 11 }); 

但是多個項目似乎沒有被設置爲選定。我怎樣才能做到這一點?

回答

4

你不能選擇多個項目與SelectList

您需要使用MultiSelectList和使用它像這樣:

public MultiSelectList(
    IEnumerable items, 
    string dataValueField, 
    string dataTextField, 
    IEnumerable selectedValues 
) 

你也可以看看this SO answer

+0

我的代碼更改爲 ViewBag.ActionsList = new MultiSelectList(actions,「Id」,「Name」,new [] {2,3,10,11}); 但它返回異常 無法將類型爲「System.Web.Mvc.MultiSelectList」的對象轉換爲鍵入「System.Web.Mvc.SelectList」。 所以有什麼其他的方式與Dropdownlist一起使用 –

+0

行爲是IEnumerable嗎?字段'Id'和'Name'是否存在? – AlexB

+0

解決了這個錯誤。但仍然選擇不工作 代碼 ViewBag.ActionsList = new MultiSelectList(actions,「Id」,「Name」,new [] {2,3,10,11}); and in razor Html.DropDownListFor(model => model.ActionId,(MultiSelectList)ViewBag.ActionsList,new {class =「multiselect」,multiple =「」,style =「width:450px; height:300px」}) 但沒有選擇任何項目。我的情況有什麼不對? –

相關問題