问:如何在multiselect内创建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>
答案 0 :(得分:2)
<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>
}
}