很多的时候需要把枚举作为数据源绑定DropDownList,一直简单的做法是:
1
}
用的时候呢,和普通的DropDownList是一样的,这里就不赘述了.今天做项目遇到了一个新的情况,需要一个民族选择的下拉菜单,这下可有点麻烦了,56个民族啊,那不是要写56行一样的东东?#$%^&*.想用Html控件,把值全部写在Html里面吧,还是觉得有点麻烦.想到了一个原来的同事阿哲写的一篇用反射+特性列出所有的枚举变量及其描述信息,绑定到DropDownList上,参考了一下,这个思路真好~!下面看看我的:
定义枚举的时候如上文的终极解决方案所述,将枚举定义加上它的特性说明,如本例所用到的民族枚举:
1.从枚举类型和它的特性读出并返回一个键值对
1
}
这个方法可以看看阿哲的文章中的说明,讲的很清楚了.不同的是一个是DataTable,一个是NameValueCollection而已.
2.从枚举类型和它的特性说明及枚举值取得该枚举的特性说明字符串
1
2
}
到了这里,绑定起来相对就容易一点了.代码如下,大家都比较反对仅仅罗列代码的文章,但有些问题似乎是只有代码能说的明白一点,所以只有再帖一点了:-)2
1
private void Page_Load(object sender, System.EventArgs e)
2
}
到这里,问题解决了.我的文章也完了.2
祝大家HappyEveryDay.MoneyMoreMore,GirlGoodGood.