Как создать optGroup из множественного выбора (selectList)? - PullRequest
1 голос
/ 25 ноября 2011

В: Как я могу создать optGroups в множественном выборе , учитывая следующее:

Модель (псевдо):

class Area {
  string Name;
  string Id;
  string GroupId;   // Want to group by this and display opt groups with my multiselect.
}

Контроллер:

ViewBag.AreaList = new SelectList(db.Areas.OrderBy(x => x.Name), "AreaId", "Name");

Вид:

@Html.ListBox("AreaList", null) 

<script type="text/javascript">
$("#AreaId").multiselect({
    selectedText: "Selected: #",
    minWidth: 210,
    noneSelectedText: "",
    selectedList: 1
});
</script>

Результирующий HTML (пример):

<select>
  <optgroup label="Group 1">
    <option value ="1">Option 1</option>
    <option value ="2">Option 2</option>
  </optgroup>
    <optgroup label="Group 2">
    <option value ="3">Option 3</option>
    <option value ="4">Option 3</option>
  </optgroup>
</select>

1 Ответ

2 голосов
/ 02 декабря 2011
<select>
@foreach (var group in Model.AreaList.select(new {group:GroupID}).Distinct())
{
    <optgroup>@group</optgroup>
    @foreach(var item in Model.AreaList.Where(r=>r.GroupID == group))
    {
         <option value="@id">@Name</option>
    }
}
...