首页 > 代码库 > 将枚举的键值绑定到下拉列表框
将枚举的键值绑定到下拉列表框
控制器代码:
///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 = http://www.mamicode.com/values[i] });>
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=http://www.mamicode.com/‘" + n.value + "‘>" + n.text + "</option>"; else option += "<option value=http://www.mamicode.com/‘" + 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>
将枚举的键值绑定到下拉列表框
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。