构建SelectList
public SelectList DummyList()
{
List<SelectListItem> list = new List<SelectListItem>();
list.Add(new SelectListItem { Value = "0", Text = "---Select--", Disabled = false });
list.Add(new SelectListItem { Value = "Uno", Text = "Uno", Disabled = false });
list.Add(new SelectListItem { Value = "Dos", Text = "Dos", Disabled = true});
list.Add(new SelectListItem { Value = "Tres", Text = "Tres", Disabled = false });
list.Add(new SelectListItem { Value = "Cuatro", Text = "Cuatro", Disabled = false });
return new SelectList(list, "Value", "Text", "---Select--");
}
将选择列表绑定到模型
model.ProductsModel.Model = new DummyDropDown().DummyList();
显示视图
@Html.DropDownListFor(model => model.Model, Model.Model, htmlAttributes: new { @class = "dropdown ", @style = "width:50%;" })
Html结果
<select id="Model" class="dropdown " style="width:50%;" name="Model">
<option value="0">---Select--</option>
<option value="Uno">Uno</option>
<option value="Dos">Dos</option>
<option value="Tres">Tres</option>
<option value="Cuatro">Cuatro</option>
</select>
查看
选择列表显示实际上启用的所有项目选项&#34; Dos&#34;应该被禁用
<option value="Dos" disabled>Dos</option>
根据属性。
如果有人可以向我解释原因,或者告诉我代码有什么问题。有没有其他方法来实现这一目标?我需要项目&#34; Dos&#34;被禁用(变灰)。
提前致谢。
答案 0 :(得分:10)
尝试将方法更改为
public IEnumerable<SelectListItem> DummyList()
{
List<SelectListItem> list = new List<SelectListItem>();
....
list.Add(new SelectListItem { Value = "Dos", Text = "Dos", Disabled = true});
....
return list;
}
并使ProductsModel.Model
类型IEnumerable<SelectListItem>
而不是SelectList
目前,您仅使用属性SelectList
和Value
根据您的列表创建新 Text
(不考虑Disabled
属性)。或者,您可以使用接受禁用值参数IEnumerable
的{{3}}之一