`

ASP.NET MVC - Creating a SelectListItem with the disabled="disabled" attribute

阅读更多

要完成这样的效果

<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 MVC之下拉框绑定四种方式

    *** MVC下拉框绑定是Web开发中常见的一项功能,开发者可以通过多种方式将数据绑定到下拉框控件中,以供用户进行选择。在本篇文档中,将详细介绍四种*** MVC下拉框绑定的方法,每种方法都有其适用场景,开发者可以...

    【ASP.NET编程知识】ASP.NET MVC中为DropDownListFor设置选中项的方法.docx

    ASP.NET MVC 中设置 DropDownListFor 选中项的方法 在 ASP.NET MVC 中,在强类型编辑页中,如果有 select 元素,需要根据当前 Model 的某个属性值,让 Select 的某项选中。下面将详细介绍设置 DropDownListFor 选中...

    ASP.NET MVC4中使用Html.DropDownListFor的方法示例

    本文实例讲述了ASP.NET MVC4中使用Html.DropDownListFor的方法。分享给大家供大家参考,具体如下: 一、控制器部分: public ActionResult PageDetail() { var thisList = _sysDepartmentBll.GetAllDepartmentList...

    MVC3 ASP.NET AJAX DropDownList 级联

    标题与描述:“MVC3 ASP.NET AJAX DropDownList 级联” 该标题与描述明确指出了一个在MVC3(Model-View-Controller架构版本3)框架下,利用ASP.NET AJAX技术实现的级联DropDownList控件的具体应用。级联...

    asp.net mvc下拉框Html.DropDownList 和DropDownListFor的常用方法

    在ASP.NET MVC框架中,创建下拉列表是常见的任务,主要使用`Html.DropDownList`和`Html.DropDownListFor`这两个辅助方法。下面将详细讲解这两种方法的用法及其在非强类型和强类型视图模型中的应用。 一、非强类型:...

    asp.net mvc

    ### ASP.NET MVC 中 HtmlHelper 类详解 #### 一、引言 在 ASP.NET MVC 开发过程中,`HtmlHelper` 类提供了丰富的辅助方法来简化 HTML 元素的生成过程,提高...希望本文能帮助你在 ASP.NET MVC 项目中更加高效地工作。

    ASP.NET MVC 控制器与视图

    *** MVC控制器与视图是*** MVC框架中的核心组成部分,负责处理用户的请求,并返回相应的视图响应。本文将详细介绍控制器和视图的相关知识,内容包含控制器的基本概念、控制器中的Action的创建与使用、数据提交与处理...

    BetterSelectList:更好地选择ASP.NET MVC的列表

    BetterSelectList 解决ASP.NET MVC呈现HTML select元素的一个小限制。 BetterSelectListItem : SelectListItem定义一个HtmlAttributes属性。 如果您使用@Html.BetterSelectListFor或@Html.BetterSelectListFor并传递...

    NET MVC3使用CheckBox List(复选框列表)的简单方法

    ### .NET MVC3 使用 CheckBox List(复选框列表)的简单方法 在.NET MVC3框架中,虽然没有直接提供CheckBox List的功能,但可以通过简单的自定义方法来实现这一功能。下面将详细介绍如何在.NET MVC3中使用CheckBox ...

    ASP.NET MVC中为DropDownListFor设置选中项的方法

    在MVC中,当涉及到强类型编辑页,如果有select元素,需要根据当前Model的某个属性值,让Select的某项选中。本篇只整理思路,不涉及完整代码。 □ 思路 往前台视图传的类型是List&lt;SelectListItem&gt;,把SelectListItem...

    一个ASP.Net MVC中所有DropDownList的EditorTemplate

    ASP.NET MVC是一个强大的框架,用于构建可维护性和可扩展性高的Web应用程序。在这个场景中,我们关注的是在ASP.NET MVC中处理DropDownList的EditorTemplate,以及如何在`OnResultExecuting`事件中获取这些Dropdown...

    自学asp.net笔记

    #### ASP.NET MVC 模式详解 ASP.NET MVC(Model-View-Controller)是一种流行的Web应用程序框架,它基于模型-视图-控制器设计模式。此模式将应用程序分为三个核心组件: - **模型(Model)**:负责管理应用程序的数据...

    详解ASP.NET MVC 下拉框的传值的两种方式

    在ASP.NET MVC框架中,创建和管理下拉框(DropdownList)的值通常涉及前端视图和后端控制器之间的交互。本文将详细讲解两种在ASP.NET MVC中为下拉框传递值的方法,以便开发者能够更好地理解和应用。 **方法一:使用...

    【ASP.NET编程知识】详解MVC中为DropDownListFor设置选中项的方法.docx

    总之,ASP.NET MVC中设置`DropDownListFor`的选中项涉及在视图中正确地使用辅助方法,并在控制器中构建`SelectListItem`列表,并根据需要设置`Selected`属性。确保在加载数据到视图时,根据特定的条件(如ID匹配)...

    Razor的MVC通用下拉列表

    在ASP.NET MVC框架中,Razor视图引擎为我们提供了一种高效、简洁的方式来编写服务器端代码。本主题将深入探讨如何使用Razor来创建一个通用的下拉列表,这在处理多个模型或视图中重复出现的下拉列表时特别有用。我们...

    ASP.NET MVC5网站开发之用户资料的修改和删除3(七)

    在*** MVC5的网站开发中,实现用户资料的修改与删除是后台管理功能中非常重要的组成部分。用户资料的修改通常用于让用户或者管理员更改用户的信息,而用户资料的删除虽然使用频率较低,却是功能完整性的一个体现。 ...

    .NET企业级项目开发-1期 经验与技巧.doc

    `@helper`是ASP.NET MVC提供的一种自定义辅助方法,可以用于创建重用的代码块。例如: ```csharp @helper GetStatusName(int status) { // code block } ``` 调用这个自定义方法时,直接在视图中使用`@...

    mvc3 checkboxlistfor

    在ASP.NET MVC框架中,`CheckBoxListFor`是一个非常有用的辅助方法,特别是在处理多选框列表的场景下。`Mvc3`是微软推出的MVC框架的第三个主要版本,它引入了许多改进和新特性,增强了开发Web应用的效率和灵活性。在...

Global site tag (gtag.js) - Google Analytics