我在.cs文件中定义了一组枚举,我想将这些枚举绑定到aspx页面的下拉列表中。我需要在4个位置显示该下拉列表。有人可以帮忙吗?
答案 0 :(得分:1)
使用以下代码将下拉列表绑定到enum
drp.DataSource = Enum.GetNames(typeof(MyEnum));
drp.DataBind();
如果您想获得所选值
MyEnum empType= (MyEnum)Enum.Parse(drp.SelectedValue);
要在一个下拉列表中附加2个枚举的项目,您可以
drp.DataSource = Enum.GetNames(typeof(MyEnum1)).Concat(Enum.GetNames(typeof(MyEnum2)));
drp.DataBind();
答案 1 :(得分:0)
对列表中的特定项进行选定绑定的最佳方法是使用属性。因此,创建一个可应用于枚举中特定项目的属性:
public class EnumBindableAttribute : Attribute
{
}
public enum ListEnum
{
[EnumBindable]
Item1,
Item2,
[EnumBindable]
Item3
}
我已经在Item1和Item3上指定了属性,现在我可以使用这样的选定项目(您可以概括以下代码):
protected void Page_Load(object sender, EventArgs e)
{
List<string> list = this.FetchBindableList();
this.DropDownList1.DataSource = list;
this.DropDownList1.DataBind();
}
private List<string> FetchBindableList()
{
List<string> list = new List<string>();
FieldInfo[] fieldInfos = typeof(ListEnum).GetFields();
foreach (var fieldInfo in fieldInfos)
{
Attribute attribute = fieldInfo.GetCustomAttribute(typeof(EnumBindableAttribute));
if (attribute != null)
{
list.Add(fieldInfo.Name);
}
}
return list;
}