要完成这样的效果
<option disabled="disabled">don't click this</option>
public class CustomSelectItem : SelectListItem
{
public bool Enabled { get; set; }
}
public static class CustomHtmlHelpers
{
public static MvcHtmlString MyDropDownList(this HtmlHelper html, IEnumerable<CustomSelectItem> selectList)
{
var selectDoc = XDocument.Parse(html.DropDownList("", (IEnumerable<SelectListItem>)selectList).ToString());
var options = from XElement el in selectDoc.Element("select").Descendants()
select el;
foreach (var item in options)
{
var itemValue = item.Attribute("value");
if (!selectList.Where(x => x.Value == itemValue.Value).Single().Enabled)
item.SetAttributeValue("disabled", "disabled");
}
// rebuild the control, resetting the options with the ones you modified
selectDoc.Root.ReplaceNodes(options.ToArray());
return MvcHtmlString.Create(selectDoc.ToString());
}
}
分享到:
相关推荐
本文实例讲述了ASP.NET MVC4中使用Html.DropDownListFor的方法。分享给大家供大家参考,具体如下: 一、控制器部分: public ActionResult PageDetail() { var thisList = _sysDepartmentBll.GetAllDepartmentList...
BetterSelectList 解决ASP.NET MVC呈现HTML select元素的一个小限制。 BetterSelectListItem : SelectListItem定义一个HtmlAttributes属性。 如果您使用@Html.BetterSelectListFor或@Html.BetterSelectListFor并传递...
在MVC中,当涉及到强类型编辑页,如果有select元素,需要根据当前Model的某个属性值,让Select的某项选中。本篇只整理思路,不涉及完整代码。 □ 思路 往前台视图传的类型是List<SelectListItem>,把SelectListItem...
一、非强类型: Controller: ViewData[“AreId”] = from a in rp.GetArea() select new SelectListItem { Text=a.AreaName, Value=a.AreaId.ToString() }; View: @Html.DropDownList(“AreId”) 还可以给
C# MVC 枚举转 SelectListItem
4、新增/修改 动作,应该是MVC框架封装了,提交表单的时候,自动把这个下拉框选中的Value传递给了model @Html.DropDownListFor(p=>p.CorpID,(List<SelectListItem>)ViewData[“ListItems”]) @model WorkLog.DS....
好几天没时间写了。今天有写时间在学一点。 今天状态也不是很好,晕晕沉沉的写吧。 序 一、用户 二、用户组 三、栏目 ... public List<SelectListItem> TypeSelectList { get { List<SelectListIt
在MVC开发中我们常常用到枚举类型,通常枚举类型在使用中是是用DropDownList,每次转换不是什么好办法。 通过扩展加以实现此功能。 代码如下:public static class ExSelectListItem { public static List...
NULL 博文链接:https://pireswang.iteye.com/blog/325583