EdM*_*ore 4 asp.net-mvc asp.net-mvc-5
构建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--");
}
Run Code Online (Sandbox Code Playgroud)
将选择列表绑定到模型
model.ProductsModel.Model = new DummyDropDown().DummyList();
Run Code Online (Sandbox Code Playgroud)
显示视图
@Html.DropDownListFor(model => model.Model, Model.Model, htmlAttributes: new { @class = "dropdown ", @style = "width:50%;" })
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
视图

选择列表显示实际启用选项"Dos"时应启用的所有项目
<option value="Dos" disabled>Dos</option>
Run Code Online (Sandbox Code Playgroud)
根据属性.
如果有人可以向我解释原因,或者告诉我代码有什么问题.有没有其他方法来实现这一目标?我需要禁用项目"Dos"(灰显).
提前致谢.
小智 11
尝试将您的方法更改为
public IEnumerable<SelectListItem> DummyList()
{
List<SelectListItem> list = new List<SelectListItem>();
....
list.Add(new SelectListItem { Value = "Dos", Text = "Dos", Disabled = true});
....
return list;
}
Run Code Online (Sandbox Code Playgroud)
并使ProductsModel.Modeltypeof IEnumerable<SelectListItem>而不是SelectList
目前,您创建一个新的 SelectList使用属性,根据您的名单Value,并Text只(不考虑Disabled属性).或者,您可以使用其中一个接受禁用值参数的SelectList重载IEnumerable
| 归档时间: |
|
| 查看次数: |
4923 次 |
| 最近记录: |