将枚举的键值绑定到下拉列表框
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                将枚举的键值绑定到下拉列表框
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.                        
                                控制器代碼:
///assemblyString:程序集名稱的長(zhǎng)格式,name:獲取程序集實(shí)例中具有指定名稱的 System.Type 對(duì)象,except:除了哪些枚舉(鍵或值都可以)不加載到下拉列表框///此方法寫在控制器當(dāng)中,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提交到后臺(tái)地址的參數(shù)對(duì)象function AjaxSelect() {//ajaxselect 在要用到自動(dòng)加載枚舉鍵值的select標(biāo)簽上必須加class值$(".ajaxselect").each(function () {var _this = $(this);//eval 表示 將字符串作為javascript代碼進(jìn)行執(zhí)行,此處代表是一個(gè)對(duì)象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>";elseoption += "<option value='" + n.value + "'>" + n.text + "</option>";});_this.append(option);}, "json");});} });
Html中的具體寫法:
<select title="請(qǐng)選擇角色" class="ajaxselect" data-options="{url:'@Url.Action("Action名", "控制器名稱")',select:'設(shè)置要默認(rèn)選中的枚舉 鍵'}"><option value="">選擇</option></select>
轉(zhuǎn)載于:https://www.cnblogs.com/szmgo/p/6744744.html
總結(jié)
以上是生活随笔為你收集整理的将枚举的键值绑定到下拉列表框的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: 打印ascll码表与查询
- 下一篇: Python--递归
