MVC 枚举绑定 DropDownList
/// <summary>
/// 枚举转化下拉列表数据集
/// </summary>
/// <param name="type">类型</param>
/// <param name="selected">选中项</param>
/// <returns>结果</returns>
public static IEnumerable<SelectListItem> EnumToListItem(Type type, string selected)
{
IList<SelectListItem> list = new List<SelectListItem> { new SelectListItem { Text = "全部", Value = string.Empty } };
Array array = Enum.GetValues(type);
foreach (int item in array)
{
string text = Enum.GetName(type, item);
var selectListItem = new SelectListItem
{
Text = text,
Value = item.ToString(CultureInfo.InvariantCulture),
Selected = !string.IsNullOrEmpty(selected) && selected == text
};
list.Add(selectListItem);
} return list;
} /// <summary>
/// 自定义DropDownList
/// </summary>
/// <param name="htmlHelper">htmlHelper</param>
/// <param name="name">name</param>
/// <param name="selectList">下拉列表集合</param>
/// <param name="obj">属性</param>
/// <returns>MvcHtmlString</returns>
public static MvcHtmlString DropDownList(this HtmlHelper htmlHelper, string name, IEnumerable<SelectListItem> selectList, object obj)
{
string fullName = htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(name);
if (string.IsNullOrEmpty(fullName))
{
throw new ArgumentException("name");
} StringBuilder listItemBuilder = new StringBuilder();
foreach (SelectListItem item in selectList)
{
TagBuilder builder = new TagBuilder("option")
{
InnerHtml = HttpUtility.HtmlEncode(item.Text)
}; if (item.Value != null)
{
builder.Attributes["value"] = item.Value;
} if (item.Selected)
{
builder.Attributes["selected"] = "selected";
} listItemBuilder.AppendLine(builder.ToString(TagRenderMode.Normal));
} TagBuilder tagBuilder = new TagBuilder("select")
{
InnerHtml = listItemBuilder.ToString()
}; if (obj != null)
{
IDictionary<string, object> htmlAttributes = new RouteValueDictionary(obj);
tagBuilder.MergeAttributes(htmlAttributes);
}
tagBuilder.MergeAttribute("name", fullName, true);
tagBuilder.GenerateId(fullName); return new MvcHtmlString(tagBuilder.ToString(TagRenderMode.Normal));
} /// <summary>
/// 自定义DropDownList
/// </summary>
/// <param name="htmlHelper">htmlHelper</param>
/// <param name="name">name</param>
/// <param name="selectList">下拉列表集合</param>
/// <returns>MvcHtmlString</returns>
public static MvcHtmlString DropDownList(this HtmlHelper htmlHelper, string name, IEnumerable<SelectListItem> selectList)
{
return DropDownList(htmlHelper, name, selectList, null);
} /// <summary>
/// 自定义DropDownList
/// </summary>
/// <param name="htmlHelper">htmlHelper</param>
/// <param name="type">枚举类型</param>
/// <param name="name">name属性</param>
/// <param name="selected">选择项目</param>
/// <param name="obj">其他属性</param>
/// <returns>DropDownList</returns>
public static MvcHtmlString DropDownList(this HtmlHelper htmlHelper, Type type, string name, string selected, object obj)
{
IEnumerable<SelectListItem> selectListItem = EnumToListItem(type, selected);
return DropDownList(htmlHelper, name, selectListItem, obj);
} /// <summary>
/// 自定义DropDownList
/// </summary>
/// <param name="htmlHelper">htmlHelper</param>
/// <param name="type">枚举类型</param>
/// <param name="name">name属性</param>
/// <param name="selected">选择项目</param>
/// <returns>DropDownList</returns>
public static MvcHtmlString DropDownList(this HtmlHelper htmlHelper, Type type, string name, string selected)
{
return DropDownList(htmlHelper, type, name, selected, null);
} /// <summary>
/// 自定义DropDownList
/// </summary>
/// <param name="htmlHelper">htmlHelper</param>
/// <param name="type">枚举类型</param>
/// <param name="name">name属性</param>
/// <param name="obj">其他属性</param>
/// <returns>DropDownList</returns>
public static MvcHtmlString DropDownList(this HtmlHelper htmlHelper, Type type, string name, object obj)
{
return DropDownList(htmlHelper, type, name, null, obj);
} /// <summary>
/// 自定义DropDownList
/// </summary>
/// <param name="htmlHelper">htmlHelper</param>
/// <param name="type">枚举类型</param>
/// <param name="name">name属性</param>
/// <returns>DropDownList</returns>
public static MvcHtmlString DropDownList(this HtmlHelper htmlHelper, Type type, string name)
{
return DropDownList(htmlHelper, type, name, null, null);
}
MVC 枚举绑定 DropDownList的更多相关文章
- MVC后台绑定dropdownList
public ActionResult Index() { List<SelectListItem> items = new List<Se ...
- 你想要的都在这里,ASP.NET Core MVC四种枚举绑定方式
前言 本节我们来讲讲在ASP.NET Core MVC又为我们提供了哪些方便,之前我们探讨过在ASP.NET MVC中下拉框绑定方式,这节我们来再来重点看看枚举绑定的方式,充分实现你所能想到的场景,满 ...
- ASP.NET Core MVC四种枚举绑定方式
前言 本节我们来讲讲在ASP.NET Core MVC又为我们提供了哪些方便,之前我们探讨过在ASP.NET MVC中下拉框绑定方式,这节我们来再来重点看看枚举绑定的方式,充分实现你所能想到的场景,满 ...
- 绑定枚举到dropdownlist
pageTools.BindEnumToDropdownList(typeof(enumDealerArea), ddlBmwArea, new ListItem("--请选择--" ...
- Asp.Net MVC绑定DropDownList等控件
测试环境:vs2013..Net4.5.mvc5 一.Asp.Net MVC绑定控件原理说明 以Html.TextBox为例 /// <param name="name"&g ...
- ASP.NET MVC 枚举类型转LIST CONTROL控件
在实际应用中,我们经常会用到下拉框.多选.单选等类似的控件,我们可以统称他们为List Control,他们可以说都是一种类型的控件,相同之处都是由一个或一组键值对的形式的数据进行绑定渲染而成的. 这 ...
- ModelBinder——ASP.NET MVC Model绑定的核心
ModelBinder——ASP.NET MVC Model绑定的核心 Model的绑定体现在从当前请求提取相应的数据绑定到目标Action方法的参数.通过前面的介绍我们知道Action方法的参数通过 ...
- ASP.NET MVC Model绑定(六)
ASP.NET MVC Model绑定(六) 前言 前面的篇幅对于IValueProvider的使用做个基础的示例讲解,但是没并没有对 IValueProvider类型的实现做详细的介绍,然而MVC框 ...
- ASP.NET MVC Model绑定(五)
ASP.NET MVC Model绑定(五) 前言 前面的篇幅对于IValueProvider的获取位置和所处的生成过程做了讲解,本篇将会对IValueProvider的使用做个基础的示例讲解,读完本 ...
随机推荐
- CentOS6.5安装RHadoop
1.首先安装依赖包(各个节点都要安装) [root@Hadoop-NN-01 ~]$ yum install gcc-gfortran #否则报”configure: error: No F77 co ...
- 7.6 Models -- Finding Records
Ember Data的store为检索一个类型的records提供一个接口. 一.Retrieving a single record(检索单记录) 1. 通过type和ID使用store.findR ...
- 搭建私有npm私库(使用verdaccio)
搭建 npm 离线服务器 为什么要搭建npm 服务器 原因: 公司内部开发的私有包,统一管理,方便开发和使用 安全性,由于公司内部开发的模块和一些内容并不希望其他无关人员能够看到,但是又希望内部能方便 ...
- 021-centos6.5上二进制安装mysql5.7.22
思路: 下载上传mysql的二进制安装包. 准备好mysql的用户.安装目录basedir.数据目录datadir.配置文件/etc/my.cnf. 初始化出数据库. 配置启动服务. 开机启动. 配置 ...
- Hibernate—部分
数据持久化的3种方式: merge()方法: 先得到对象的副本:再判断, 如果副本为瞬时状态,则用save()插入 如果副本为游离状态,则用update()更新 最终都是不改变传入对象的状态 save ...
- cmd 笔记(随时补充)
被一篇破解WIFI的标题文骗到了,所以学习一下CMD的命令 1 查看已经连接的wifi和密码 netsh wlan show profiles 回车 netsh wlan show profiles ...
- HDU 2235
这题说的是给了一个 平面 然后又很多的长方体柱子 问这个 容器的 容积是什么, 排序后 然后 进行 并查集 判断是否 可以有比他小的高度依靠他算体积,通过并查集去判断他的子集的个数. #include ...
- Python: 字符串开头或结尾匹配str.startswith(),str.endswith()
问题 需要通过指定的文本模式去检查字符串的开头或者结尾,比如文件名后缀,URLScheme 等等. 解决方案 1.检查字符串开头或结尾的一个简单方法是使用str.startswith() 或者是str ...
- linux常用命令:which 命令
我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which 查看可执行文件的位置. whereis 查看文件的位置. locate 配合数据库查看文件位置 ...
- outlook还原初始设置
找到outlook的安装地址: C:\Program Files\Microsoft Office\Office15 进入命令行界面 WIN+R ->cmd cd C:\Program File ...