gpt4 book ai didi

asp.net-mvc - MVC 禁用 SelectListItem 属性不起作用

转载 作者:行者123 更新时间:2023-12-02 11:51:59 30 4
gpt4 key购买 nike

构建选择列表

   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--");

}



将选择列表绑定(bind)到模型

model.ProductsModel.Model = new DummyDropDown().DummyList();



显示 View

@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>



查看

enter image description here


选择列表显示所有启用的项目,而实际上应禁用选项“Dos”

<option value="Dos" disabled>Dos</option>

根据属性。

如果有人可以向我解释原因,或者告诉我代码有什么问题。还有其他方法可以实现这一目标吗?我需要禁用项目“Dos”(灰显)。

提前致谢。

最佳答案

尝试将方法更改为

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基于您的列表,使用属性 ValueText仅(不考虑 Disabled 属性)。或者,您可以使用 SelectList overloads 之一接受参数IEnumerable禁用值的数量

关于asp.net-mvc - MVC 禁用 SelectListItem 属性不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26267084/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com