加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 07:29:26 所属栏目:asp.Net 来源:网络整理
导读:构建SelectList public SelectList DummyList() { ListSelectListItem list = new ListSelectListItem(); list.Add(new SelectListItem { Value = "0",Text = "---Select--",Disabled = false }); list.Add(new SelectListItem { Value = "Uno",Text = "Uno"
构建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>

视图

选择列表显示实际启用选项“Dos”时应启用的所有项目

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

根据属性.

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

提前致谢.

解决方法

尝试将您的方法更改为

public IEnumerable<SelectListItem> DummyList()
{
  List<SelectListItem> list = new List<SelectListItem>();
  ....
  list.Add(new SelectListItem { Value = "Dos",Disabled = true});
  ....
  return list;
}

并使ProductsModel.Model类型为IEnumerable< SelectListItem>而不是SelectList

目前,您只使用属性值和文本(不考虑Disabled属性)基于列表创建新的SelectList.或者,您可以使用接受参数IEnumerable的禁用值的SelectList overloads之一

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读