• 将枚举的键值绑定到下拉列表框


    控制器代码:

    ///assemblyString:程序集名称的长格式,name:获取程序集实例中具有指定名称的 System.Type 对象,except:除了哪些枚举(键或值都可以)不加载到下拉列表框
            ///此方法写在控制器当中,GetEnum则为 最下面Html代码中的Action名
            public ActionResult GetEnum(string assemblyString, string name, string except = "")
            {
                except = string.Format(",{0},", except.ToUpper());
                Assembly ass = Assembly.Load(assemblyString);
                Type type = ass.GetType(name);
                if (type != null && type.IsEnum)
                {
                    string[] names = type.GetEnumNames();
                    int[] values = (int[])type.GetEnumValues();
                    List<object> list = new List<object>();
                    for (int i = 0; i < names.Length; i++)
                    {
                        if (except.IndexOf(string.Format(",{0},", names[i].ToUpper())) < 0)
                            list.Add(new { text = names[i], value = values[i] });
                    }
                    return Json(list);
                }
                return Json(null);
            }
    

      

     js代码:(使用前引用jquery)

    $(function () {
        AjaxSelect();
        //获取枚举的值并将名称和值绑定在选择框,params提交到后台地址的参数对象
        function AjaxSelect() {
          //ajaxselect 在要用到自动加载枚举键值的select标签上必须加class值 $(".ajaxselect").each(function () { var _this = $(this); //eval 表示 将字符串作为javascript代码进行执行,此处代表是一个对象 var opts = eval('(' + _this.attr("data-options") + ')'); var option = ""; $.post(opts.url, opts.params, function (data) { $.each(data, function (i, n) { if (n.text == opts.select) option += "<option selected='selected' value='" + n.value + "'>" + n.text + "</option>"; else option += "<option value='" + n.value + "'>" + n.text + "</option>"; }); _this.append(option); }, "json"); }); } });

     Html中的具体写法:

     <select title="请选择角色" class="ajaxselect" data-options="{url:'@Url.Action("Action名", "控制器名称")',select:'设置要默认选中的枚举 键'}">
       <option value="">选择</option>
     </select>
    

      

  • 相关阅读:
    B Graph(异或MST)
    G. Xor-MST(边权为俩点值的异或值,求MST)
    H Harmony Pairs(找(大小)和(位数和大小)逆序的点对,数位dp)
    hdu6787(根据喜欢程度分配得最大总价值,最大费用最大流)
    Codeforces Global Round 2
    2019西北工业大学程序设计创新实践基地春季选拔赛(重现赛)
    Java EE学习笔记(九)
    Java EE学习笔记(八)
    Codeforces Round #549 (Div. 2)
    Codeforces Round #550 (Div. 3)
  • 原文地址:https://www.cnblogs.com/szmgo/p/6744744.html
Copyright © 2020-2023  润新知