zoukankan      html  css  js  c++  java
  • MVC 枚举绑定 DropDownList

      1         /// <summary>
      2         /// 枚举转化下拉列表数据集
      3         /// </summary>
      4         /// <param name="type">类型</param>
      5         /// <param name="selected">选中项</param>
      6         /// <returns>结果</returns>
      7         public static IEnumerable<SelectListItem> EnumToListItem(Type type, string selected)
      8         {
      9             IList<SelectListItem> list = new List<SelectListItem> { new SelectListItem { Text = "全部", Value = string.Empty } };
     10             Array array = Enum.GetValues(type);
     11             foreach (int item in array)
     12             {
     13                 string text = Enum.GetName(type, item);
     14                 var selectListItem = new SelectListItem
     15                 {
     16                     Text = text,
     17                     Value = item.ToString(CultureInfo.InvariantCulture),
     18                     Selected = !string.IsNullOrEmpty(selected) && selected == text
     19                 };
     20                 list.Add(selectListItem);
     21             }
     22 
     23             return list;
     24         }
     25 
     26         /// <summary>
     27         /// 自定义DropDownList
     28         /// </summary>
     29         /// <param name="htmlHelper">htmlHelper</param>
     30         /// <param name="name">name</param>
     31         /// <param name="selectList">下拉列表集合</param>
     32         /// <param name="obj">属性</param>
     33         /// <returns>MvcHtmlString</returns>
     34         public static MvcHtmlString DropDownList(this HtmlHelper htmlHelper, string name, IEnumerable<SelectListItem> selectList, object obj)
     35         {
     36             string fullName = htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(name);
     37             if (string.IsNullOrEmpty(fullName))
     38             {
     39                 throw new ArgumentException("name");
     40             }
     41 
     42             StringBuilder listItemBuilder = new StringBuilder();
     43             foreach (SelectListItem item in selectList)
     44             {
     45                 TagBuilder builder = new TagBuilder("option")
     46                 {
     47                     InnerHtml = HttpUtility.HtmlEncode(item.Text)
     48                 };
     49 
     50                 if (item.Value != null)
     51                 {
     52                     builder.Attributes["value"] = item.Value;
     53                 }
     54 
     55                 if (item.Selected)
     56                 {
     57                     builder.Attributes["selected"] = "selected";
     58                 }
     59 
     60                 listItemBuilder.AppendLine(builder.ToString(TagRenderMode.Normal));
     61             }
     62 
     63             TagBuilder tagBuilder = new TagBuilder("select")
     64             {
     65                 InnerHtml = listItemBuilder.ToString()
     66             };
     67 
     68             if (obj != null)
     69             {
     70                 IDictionary<string, object> htmlAttributes = new RouteValueDictionary(obj);
     71                 tagBuilder.MergeAttributes(htmlAttributes);
     72             }
     73             tagBuilder.MergeAttribute("name", fullName, true);
     74             tagBuilder.GenerateId(fullName);
     75 
     76             return new MvcHtmlString(tagBuilder.ToString(TagRenderMode.Normal));
     77         }
     78 
     79         /// <summary>
     80         /// 自定义DropDownList
     81         /// </summary>
     82         /// <param name="htmlHelper">htmlHelper</param>
     83         /// <param name="name">name</param>
     84         /// <param name="selectList">下拉列表集合</param>
     85         /// <returns>MvcHtmlString</returns>
     86         public static MvcHtmlString DropDownList(this HtmlHelper htmlHelper, string name, IEnumerable<SelectListItem> selectList)
     87         {
     88             return DropDownList(htmlHelper, name, selectList, null);
     89         }
     90 
     91         /// <summary>
     92         /// 自定义DropDownList
     93         /// </summary>
     94         /// <param name="htmlHelper">htmlHelper</param>
     95         /// <param name="type">枚举类型</param>
     96         /// <param name="name">name属性</param>
     97         /// <param name="selected">选择项目</param>
     98         /// <param name="obj">其他属性</param>
     99         /// <returns>DropDownList</returns>
    100         public static MvcHtmlString DropDownList(this HtmlHelper htmlHelper, Type type, string name, string selected, object obj)
    101         {
    102             IEnumerable<SelectListItem> selectListItem = EnumToListItem(type, selected);
    103             return DropDownList(htmlHelper, name, selectListItem, obj);
    104         }
    105 
    106         /// <summary>
    107         /// 自定义DropDownList
    108         /// </summary>
    109         /// <param name="htmlHelper">htmlHelper</param>
    110         /// <param name="type">枚举类型</param>
    111         /// <param name="name">name属性</param>
    112         /// <param name="selected">选择项目</param>
    113         /// <returns>DropDownList</returns>
    114         public static MvcHtmlString DropDownList(this HtmlHelper htmlHelper, Type type, string name, string selected)
    115         {
    116             return DropDownList(htmlHelper, type, name, selected, null);
    117         }
    118 
    119         /// <summary>
    120         /// 自定义DropDownList
    121         /// </summary>
    122         /// <param name="htmlHelper">htmlHelper</param>
    123         /// <param name="type">枚举类型</param>
    124         /// <param name="name">name属性</param>
    125         /// <param name="obj">其他属性</param>
    126         /// <returns>DropDownList</returns>
    127         public static MvcHtmlString DropDownList(this HtmlHelper htmlHelper, Type type, string name, object obj)
    128         {
    129             return DropDownList(htmlHelper, type, name, null, obj);
    130         }
    131 
    132         /// <summary>
    133         /// 自定义DropDownList
    134         /// </summary>
    135         /// <param name="htmlHelper">htmlHelper</param>
    136         /// <param name="type">枚举类型</param>
    137         /// <param name="name">name属性</param>
    138         /// <returns>DropDownList</returns>
    139         public static MvcHtmlString DropDownList(this HtmlHelper htmlHelper, Type type, string name)
    140         {
    141             return DropDownList(htmlHelper, type, name, null, null);
    142         }
    View Code
  • 相关阅读:
    Django restframework api版本控制组件增加及源码分析
    Django restframework用户访问频率控制组件增加及源码分析
    Django restframework用户权限认证组件增加及源码分析
    Django restframework用户登录认证组件增加及源码分析
    Django restframework视图访问流程源码剖析
    01 二维数组中的查找
    Linux基础
    函数设计原则
    递归函数分析
    函数与宏分析
  • 原文地址:https://www.cnblogs.com/liuxiaoji/p/4523028.html
Copyright © 2011-2022 走看看