asp.net项目开发中用到的小技巧

  1 显示枚举的值:<%# (CN80s.DDPM.Model.Enum.EnumBidCardStatus)(int)Eval("PerpaidCard_Status")%>

  2 为下拉框绑定枚举:

  

复制代码 代码如下:

  GetEnumList(ddlBids);

  void GetEnumList(DropDownList ddl)

  {

  foreach (EnumBidCardType s in System.Enum.GetValues(typeof(EnumBidCardType)))

  {

  ddl.Items.Add(new ListItem(s.ToString(), ((int)s).ToString()));

  }

  }

  this.ddlBids.DataSource = GetEnumList(typeof(EnumBidCardType), true);

  this.ddlBids.DataTextField = "Text";

  this.ddlBids.DataValueField = "Value";

  this.ddlBids.DataBind();

  public static List<ListItem> GetEnumList(Type enumType, bool allAllOption)

  {

  if (enumType.IsEnum == false)

  {

  return null;

  }

  List<ListItem> list = new List<ListItem>();

  if (allAllOption == true)

  {

  list.Add(new ListItem("--全部--", ""));

  }

  Type typeDescription = typeof(DescriptionAttribute);

  System.Reflection.FieldInfo[] fields = enumType.GetFields();

  string strText = string.Empty;

  string strValue = string.Empty;

  foreach (FieldInfo field in fields)

  {

  if (field.IsSpecialName) continue;

  strValue = field.GetRawConstantValue().ToString();

  object[] arr = field.GetCustomAttributes(typeDescription, true);

  if (arr.Length > 0)

  {

  strText = (arr[0] as DescriptionAttribute).Description;

  }

  else

  {

  strText = field.Name;

  }

  list.Add(new ListItem(strText, strValue));

  }

  return list;

  }