我有一个Region
类,如下所示:
public class Region
{
public int Id { get; set; }
public int Name { get; set; }
public int ParentId { get; set; }
}
Person
有区域:
public class Person
{
public int Id { get; set; }
public int Name { get; set; }
public int SurName { get; set; }
public int RegionId { get; set; }
}
但是,它不像树节点。只有2层楼。国家及其子区域 - 城市。我使用bootstrap模板。
我像这个列表一样收集这些区域:
Country1 //need to disable this
City1
City2
City3
Country2 //need to disable this
City1
City2
亲自制作行动:
Viewbag.Regions = new SelectList(MyRepository.LoadRegions(), "Id", "Name");
并且在视野中:
@Html.DropDownListFor(model => model.RegionId, ViewBag.Regions as IEnumerable<SelectListItem>, "-", new { data_rel = "chosen", @id = "region" })
最后,我需要在下拉列表打开时禁用国家/地区,只能选择城市。
如何在dropdownlis中禁用parentId == 0
?
答案 0 :(得分:0)
您可以采取的一种方法是加载区域,删除父项,然后将SelectList分配给Viewbag。
var regions = MyRepository.LoadRegions();
/* remove parent items from regions */
ViewBag.Regions = new SelectList(regions, "Id", "Name");
编辑我之前误解了这个问题。您希望标题不可选。我发现this question关于支持OptGroups的MVC(我认为这将完成你的目标)。结果是基础Html.DropDown帮助器不支持它,但是你可以编写一个自定义的,在链接的问题中有一个自定义帮助器样本。